Troubleshooting PHP Warning “Permission denied /var/cpanel/php/sessions/ea-php56/”

Once I updated EasyApache 3 to EasyApache 4 in cPanel and noticed in the PHP logs the following:

[29-Mar-2018 15:54:45 UTC] PHP Warning:  Unknown: open(/var/cpanel/php/sessions/ea-php56/sess_3d96o7nnlnnr473p8619vqkdm1, O_RDWR) failed: Permission denied (13) in Unknown on line 0
[29-Mar-2018 15:54:45 UTC] PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/cpanel/php/sessions/ea-php56) in Unknown on line 0

The warning occurs because PHP can not write session files to a directory to which it does not have access rights.
I looked at the rights of this directory, the group and owner was root, and it was also allowed to write and execute for everyone, except reading.

To resolve this warning, you can open full access for everyone:

chmod 777 /var/cpanel/php/sessions/ea-php56

Or open a PHP configuration, for example in the nano editor:

nano /opt/cpanel/ea-php56/root/etc/php.ini

To find:

session.save_path = "/var/cpanel/php/sessions/ea-php56"

And change to:

session.save_path = "/tmp"

That used to be on the old EasyApache3 in the PHP configuration /usr/local/lib/php.ini.

After that, the warning did not appear.

See also:
Migration from EasyApache 3 to EasyApache 4

The warning solution “The MaxMind Geolite databases will soon be deprecated” in Cpanel

Once launched a server security check by clicking “Check Server Security” in “Main” – “Plugins” – “ConfigServer Security & Firewall” and saw a warning:

Firewall Check
CC_OLDGEOLITE option check
The MaxMind Geolite databases will soon be deprecated, disable CC_OLDGEOLITE to start using the new Geolite2 databases

This option determines which database to use, the old MaxMind Geolite or the new MaxMind Geolite2.
If the option “CC_OLDGEOLITE” is 1, which is in my case, then the old one is used, and if 0, then the new one.

To enable the use of a new one, open the CSF configuration for example in the text editor nano:

nano /etc/csf/csf.conf

Find the option CC_OLDGEOLITE and change its value from 1 to 0:

CC_OLDGEOLITE = "0"

In the nano editor, the Ctrl+X keys are used to exit, and y/n and Enter to save or discard the changes.

After the changes, restart CSF by clicking “Firewall Restart” in the menu “Main” – “Plugins” – “ConfigServer Security & Firewall”.

How to make a bootable USB flash drive using UltraISO

I’ll describe the process of creating a bootable USB flash drive with Windows using UltraISO:

1) Start UltraISO, select the required ISO image of the operating system by clicking the menu “File”> “Open”.

2) We connect the USB flash drive to the computer, in UltraISO we open the menu “Bootable”> “Write Disk Image …”.
There where “Disk Drive” we will select a USB flash drive and press the “Write” button below to start the process of copying files from the ISO image.
Before starting the copying, all data from the USB flash drive will be erased.

At the end of the process, the USB flash drive will be ready.

See also:
How to make a bootable USB flash drive with Windows

Reset HP A5800 Switch to Factory Default Configuration

On the test, I reset the configuration on the HP A5800 Series Switch JC103A.

And so, connect to the device and see what files are in the device’s memory:

dir

By default, the configuration is saved in the file config.cfg, let’s say that it is, so we’ll delete it:

delete config.cfg

We removed the configuration file, now we will reboot the device:

reboot

On the offer to keep the configuration we will refuse and on the next issue agree to the reboot:

This command will reboot the device. Current configuration will be lost, save current configuration? [Y/N]:n
This command will reboot the device. Continue? [Y/N]:y

Done, the switch will start with the default configuration, after which you can begin to configure, for example, as I described in the article – Настройка HP 5800

You can also try to reset the configuration as follows:

reset saved-configuration
reboot

Either through the Boot menu, to open it, when you turn on the device, press Ctrl+D and pressing the number 5, we select in the menu the reset of the configuration:

5. Restore to factory default configuration

Then, press 0 to select the reboot:

0. Reboot

When starting the switch, make sure that the configuration is reset:

display current-configuration
display saved-configuration

Solution of error “The transceiver type is not supported by port hardware” on HP A5800

I noticed once on the switch HP A5800 Series Switch JC103A, when inserting the module Foxgate SFP-1SM-1550nm-10SC (10km), the following error:

%Apr 26 12:18:56:384 2000 HP OPTMOD/4/MODULE_IN:
 GigabitEthernet1/0/24: The transceiver is UNKNOWN_SFP_PLUS.
%Apr 26 12:18:56:524 2000 HP OPTMOD/5/CHKSUM_ERR:
 GigabitEthernet1/0/24: The checksum of transceiver information is bad!
%Apr 26 12:18:56:674 2000 HP OPTMOD/3/TYPE_ERR:
 GigabitEthernet1/0/24: The transceiver type is not supported by port hardware!

Alternatively, you can try running the command:

transceiver phony-alarm-disable

But in my case this command did not help.
Also noticed that the error did not occur when inserting a similar module is not at 10km, but at 3km – Foxgate SFP-1SM-1550nm-3SC 3km.

The problem was solved by updating the firmware of the switch, as I did in the article – HP A5800 Firmware Upgrade
I updated the firmware from “A5800_5820X-CMW520-R1809P11” to “A5800_5820X-CMW520-R1810P13”.
After the upgrade, both modules were working and there were no errors in the console.

See also:
Using third-party SFP modules in Cisco switches

Sending Asterisk voicemail to multiple emails

Let’s say the voice mail is configured as I described in the article – Setting up voicemail in Asterisk.
There is the following context:

[voicemailcontext]
207 => 1111,Username,test@example.com,,attach=yes|tz=ua|delete=yes

If you want to send a voice message to several email addresses, then instead of test@example.com, for example, testmail:

[voicemailcontext]
207 => 1111,Username,testmail,,attach=yes|tz=ua|delete=yes

Then open the /etc/aliases file in a text editor:

sudo nano /etc/aliases

And let’s specify aliases for testmail:

testmail: support@example.net,user@example.net

For the changes to take effect, you need to update the alias database with the command:

cd /etc
sudo newaliases

Done, Asterisk will send a message to testmail, and it will be automatically forwarded to the specified addresses.

See also:
Redirecting mail for the root user

Setting up voicemail in Asterisk

For example, I’ll set up voice mail for SIP number 207.
Voice messages will be sent to the email using Postfix.
How to install it I described in this article – Installing and Configuring Postfix.

For starters, let’s point out the following in the context of SIP 207 (usually in /etc/asterisk/sip.conf):

mailbox=207@voicemailcontext

Next, configure the configuration of voice mail in the file /etc/asterisk/voicemail.conf:

[general]
; Format of audio files
format=wav49|gsm|wav
; From whom to send letters with notifications
serveremail=noreply@example.com
; Whether to attach to an audio file
attach=yes
; The maximum number of messages (standard 100, maximum 9999)
maxmsg=100
; Maximum message time in seconds
maxsecs=120
; Maximum greeting time in seconds
maxgreet=60
; Number of seconds of silence before recording is complete
maxsilence=10
; Threshold sensitivity to silence, the lower the sensitivity, the value from 0 to 256, standard 128
silencethreshold=128
; Maximum number of failed connection attempts
maxlogins=3
; Automatically move the listened messages to the "Old" folder. The default is on.
moveheard=yes
; The encoding of messages, the standard ISO-8859-1, with it my part of the text was displayed incorrectly, so it's better to specify UTF-8
charset=UTF-8
; Skip the line "[PBX]:" from the message header
pbxskip=yes
; The text of the line "From:"
fromstring=VoiceMail
; Letter subject
emailsubject=New voice message ${VM_MSGNUM} in the mailbox ${VM_MAILBOX}
; The contents of the letter
emailbody=Dear ${VM_NAME}:\n\n\tYou received a new voice message in length ${VM_DUR} under the number (number ${VM_MSGNUM})\nin the mailbox ${VM_MAILBOX} from ${VM_CALLERID}, at ${VM_DATE}. \n\t
; Date format
emaildateformat=%A, %d %B %Y в %H:%M:%S
pagerdateformat=%T %D
; Standard program for sending mail
mailcmd=/usr/sbin/sendmail -t

[zonemessages]
ru=Europe/Moscow|'vm-received' q 'digits/at' H 'hours' M 'minutes'
ua=Europe/Kiev|'vm-received' q 'digits/at' H 'hours' M 'minutes'

; We will write the context parameters voicemailcontext, 1111 - voice mail password (you can not specify), Username - user name, test@example.com - which address to send voice messages, after the comma you can specify one more, at the end of the option
[voicemailcontext]
207 => 1111,Username,test@example.com,,attach=yes|tz=ua|delete=yes

By the way, if you do not specify “delete=yes”, when the maxmsg limit is reached, the answering machine will say a greeting, and then the text that the subscriber’s voice box is full and do not save the message, or send it to the email. In this case, you need to call the voicemail number and delete the messages. If “delete=yes” is specified, the messages are not stored on the server, they do not come to the voice mailbox, but only sent to the email, in this case the maxmsg limit does not work and the overflow is not possible.

Now, in the configuration of the dial plan /etc/asterisk/extensions.conf in the main context, add the number by calling to which you can listen to the mail:

exten => 500,1,Log(NOTICE, Dialing out from ${CALLERID(all)} to VoiceMail (500))
exten => 500,n,VoiceMailMain(0${CALLERID(num)}@voicemailcontext,s)
exten => 500,n, Hangup

And add the VoiceMail line to the dialing context of the number 207 (after which, if the number is not answered or not on the network, voice mail will work), for example:

[207]
exten => 207,1,Dial(SIP/207,30)
exten => 207,n,Answer
exten => 207,n,VoiceMail(207@voicemailcontext)

Finally we connect to the Asterisk console, reload the configuration, see the list of voice mailboxes and letters:

asterisk -rvv
sip reload
voicemail reload
dialplan reload
voicemail show users
exit

The recorded messages are stored in the directory /var/spool/asterisk/voicemail/
Sound files are stored in /usr/share/asterisk/sounds

See also:
Sending Asterisk voicemail to multiple emails
Solving the error in Asterisk “File vm-newn does not exist in any format”
How to convert audio files to ulaw, alaw, gsm, g722, etc. for Asterisk

Installing Metamod on Linux

Metamod – a module that allows to extend the capabilities of the HLDS server, it intercepts calls to functions and transmits data to other plug-ins.

For example, I will install it on the server Counter-Strike 1.6.
Let’s go to the directory cstrike and create the necessary folders:

cd ~/hlds/cstrike
mkdir addons
cd addons
mkdir metamod
cd metamod
mkdir dlls
cd dlls

Download the archive from Metamod and unpack it:

wget https://ixnfo.com/wp-content/uploads/2016/12/metamod-p-1.21p37-linux_i686.tar.gz
tar -zxvf metamod-p-1.21p37-linux_i686.tar.gz

Create the plugins.ini file:

cd ~/hlds/cstrike/addons/metamod
touch plugins.ini

Open the file liblist.gam in the text editor (in the nano editor, press Ctrl+X to exit, y or n, then Enter to save or discard the changes:

cd ~/hlds/cstrike
nano liblist.gam

Add at the end of the line:

gamedll_linux "addons/metamod/dlls/metamod.so"

Done, Metamod is installed, the server can be rebooted.
In order to connect nosteam clients to the server, you can install Dproto as well.

A new version of Metamod can be found here http://metamod-p.sourceforge.net