Some PHP packages may stop working after update with error message: “There is no suitable CSPRNG installed on your system”.
The reason for this that they stopped using OpenSSL and now they need access to /dev/urandom which isn’t readable by your PHP configuration.
To fix this problem, all you need to do is to add /dev/urandom to your open_base configuration which limits the files that can be accessed by PHP to the specified directory-tree (or trees).
In case you’re using php-fpm, add the “/dev/urandom” in existing php_admin_value[open_basedir] definition (or add this line if it doesn’t exist)
php_admin_value[open_basedir] = /var/www/html/domain.tld:/usr/share/php5:/usr/share/php:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin:/dev/random:/dev/urandom
or if you’re using mod_fcgi, inside .php-fcgi-starter script add parameter
If you’ve just installed CentOS 6.x on software RAID and it won’t boot from /dev/md0, don’t worry. It can be fixed.
– Insert CentOS media/DVD and boot in rescue mode (select “Rescue mode” during boot)
– Select the “start shell” option
– chroot with
– install GRUB into /dev/md0 with
– enter exit and than reboot
The other option is to enter into rescue mode and inside grub shell type the next commands:
grub> device (hd0) /dev/sda
grub> device (hd1) /dev/sdb
grub> root (hd0,0)
grub> setup (hd0)
grub> root (hd1,0)
grub> setup (hd1)
To change your hostname, you’ll need to edit /etc/hostname file with
The file content is very simple. It contains the current hostname and all you need to do is to replace it with the new one, save and exit
After you save the changes, open /etc/hosts file and replace the current hostname with the new one near 127.0.1.1 IP address.
Save file and exit.
Now, enter the next command
sudo hostname new-hostname
Your computer’s hostname will be changed immediately. (The change won’t appear in the terminal until you reopen it again)
This method will work on all Debian based distros (Ubuntu, Kubuntu, ….)
If you’re not sure which components are installed in your server/pc, you can use inxi which is a command line system information script. It will show you the system hardware, CPU, drivers, Xorg, Desktop, Kernel, GCC version(s), Processes, RAM usage, and a wide variety of other useful information.
myPC@myPC ~ $ inxi -F
System: Host: myPC Kernel: 3.19.0-32-generic x86_64 (64 bit) Desktop: Cinnamon 2.8.8
Distro: Linux Mint 17.3 Rosa
Machine: System: LENOVO product: 20E1000BSC v: ThinkPad W550s
Mobo: LENOVO model: 20E1000BSC v: SDK0E50510 WIN Bios: LENOVO v: N11ET34W (1.10 ) date: 08/20/2015
CPU: Dual core Intel Core i7-5600U (-HT-MCP-) cache: 4096 KB
clock speeds: max: 3200 MHz 1: 901 MHz 2: 981 MHz 3: 2195 MHz 4: 2199 MHz
Graphics: Card-1: Intel Broadwell-U Integrated Graphics
Card-2: NVIDIA GM108GLM [Quadro K620M]
Display Server: X.Org 1.17.1 drivers: nvidia (unloaded: intel)
Resolution: email@example.com, firstname.lastname@example.org
GLX Renderer: Quadro K620M/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 352.63
Audio: Card-1 Intel Wildcat Point-LP High Definition Audio Controller driver: snd_hda_intel
Card-2 Intel Broadwell-U Audio Controller driver: snd_hda_intel
Sound: Advanced Linux Sound Architecture v: k3.19.0-32-generic
Network: Card-1: Intel Ethernet Connection (3) I218-LM driver: e1000e
IF: eth0 state: up speed: 1000 Mbps duplex: full mac: 54:ee:75:cc:11:4a
Card-2: Intel Wireless 7265 driver: iwlwifi
IF: wlan0 state: up mac: 18:5e:0f:ee:f8:aa
Drives: HDD Total Size: 768.2GB (17.1% used) ID-1: /dev/sda model: LITEON_LCH size: 512.1GB
ID-2: /dev/sdb model: ADATA_SP600NS34 size: 256.1GB
Partition: ID-1: / size: 28G used: 9.4G (37%) fs: ext4 dev: /dev/sdb1
ID-2: /home size: 195G used: 60G (33%) fs: ext4 dev: /dev/sdb3
RAID: No RAID devices: /proc/mdstat, md_mod kernel module present
Sensors: System Temperatures: cpu: 50.0C mobo: N/A gpu: 48C
Fan Speeds (in rpm): cpu: 2466
Info: Processes: 229 Uptime: 1:09 Memory: 2341.5/15748.3MB Client: Shell (bash) inxi: 2.2.28
Google announced plans to discontinue 32-bit Google Chrome for Linux and it has. On some 64bit Ubuntu based systems (Mint/Kubuntu/Xubuntu,..), during update process you may notice the next error:
“Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/Release Unable to find expected entry ‘main/binary-i386/Packages’ in Release file (Wrong sources.list entry or malformed file)”
To fix this error you’ll need to make some changes in google-chrome.list
Open /etc/apt/sources.list.d/google-chrome.list file and add [arch=amd64] before “http”
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
Do not edit or replace any other text in this file. Save the changes and refresh your package list with
The “failed to fetch” APT error should no longer appear
The Point-to-Point Tunneling Protocol (PPTP) is a method for implementing virtual private networks. Since it is marked as non secure and vulnerable, I don’t recommend it as a “final” VPN solution. The main reason for its popularity is probably the native MS Windows support (since win 95). Also, it can be easily implemented with Mikrotik RouterOS (like I said, use it for internal VPNs only).
To set up your CentOS box as a PPTP clients you’ll need the pptp package.
Open /etc/ppp/chap-secrets and add the next line (at the end). Also, replace the userName and password with the correct details:
Create profile file
and paste the next content (replace IP_OR_HOSTNAME with PPTP server IP or hostname)
pty "pptp IP_OR_HOSTNAME --nolaunchpppd"
save the file and test the connection with
ifconfig should return something like
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.16.18.252 P-t-P:10.16.18.251 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1436 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:2192 (2.1 KiB) TX bytes:631 (631.0 b)
also in /var/log/messages you should see something like
Jul 20 10:58:50 mysrv pppd: pppd 2.4.5 started by root, uid 0
Jul 20 10:58:50 mysrv pppd: Using interface ppp0
Jul 20 10:58:50 mysrv pppd: Connect: ppp0 <--> /dev/pts/1
Jul 20 10:58:50 mysrv pptp: anon log[main:pptp.c:314]: The synchronous pptp option is NOT activated
Jul 20 10:58:50 mysrv pptp: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
Jul 20 10:58:50 mysrv pptp: anon log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply
Jul 20 10:58:50 mysrv pptp: anon log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.
Jul 20 10:58:51 mysrv pptp: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
Jul 20 10:58:51 mysrv pptp: anon log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.
Jul 20 10:58:51 mysrv pptp: anon log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 716).
Jul 20 10:58:51 mysrv pppd: CHAP authentication succeeded
Jul 20 10:58:51 mysrv pppd: MPPE 128-bit stateless compression enabled
Jul 20 10:58:51 mysrv pppd: local IP address 10.16.18.252
Jul 20 10:58:51 mysrv pppd: remote IP address 10.16.18.251
Jul 20 10:59:51 mysrv pptp: anon log[logecho:pptp_ctrl.c:677]: Echo Reply received.
If you check your routes, you’ll probably notice that ppp0 connection is not used by any route(s). This is default behavior and you can easily switch/add default route with:
route add default dev ppp0
In my case, I don’t want to route the complete traffic (this VPN is just for management) so I’ll add only one static route
route add -net 192.168.120.0/24 dev ppp0
To start this connection on boot, add “pppd call myVPN” in rc.local.
The RAID functionality for the B120i and B320i controllers in the “e” series ProLiant servers is provided by a software driver (FakeRAID). The driver for these RAID controllers is available in binary form on HP site (Currently only for RHEL and SLES). CentOS users (of course) should download RHEL driver but in this case, do not expect support from HP.
Without drivers, the disks won’t be seen as a parts of RAID array.
Option 1 – disable controller / don’t use it
For systems with the B320i SAS controller
- Boot the server into System Options
- Navigate to HP Smart Array B320i Raid Configuration
- Change to DISABLED
For systems with the B120i SATA controller
- Boot the server into System Options
- Navigate to SATA Controller Options -> Embedded SATA Configuration
- Change it to ENABLE SATA AHCI SUPPORT
Option 2 – install drivers
- Click here to download RHEL 6.x driver
- In “Software – Driver Update” section you’ll see the latest update (hpvsa-1.2.12-110.rhel6u6.x86_64.dd.gz). Download the file, extract into FAT32 formatted USB drive
- Boot Centos 6 from DVD (or how ever you want)
- On the main installation menu, plug in the USB drive. Press “ESC” to manually boot
- At that “boot” prompt enter the following command: linux dd blacklist=ahci
- Hit ENTER and select Yes for driver option. Select the USB drive, select the driver disk image and select OK.
- Continue with the OS installation
To extract multiple 7z files at once, use the next script
for fileToExtract in *.7z
7z x "$fileToExtract"
Remember, x option means extract files with full paths.
If you try to install Samsung printer (in my case ML1675) on Ubuntu 14.04 or Mint 17, you’ll may have some problems with missing file – rastertosplc.
If you added printer via web (http://localhost:631/) or via printer wizard, delete installed printer and follow the next instructions
Download drivers from this page: http://www.samsung.com/pk/support/model/ML-1675/XSG-downloads, extract them and install drivers with:
(follow the wizard to complete process)
cd into /usr/lib/cups/filter and check the existence of rastertosplc file.
If this file doesn’t exist add symbolic link to /opt/smfp-common/printer/bin/rastertospl with
sudo ln -s /opt/smfp-common/printer/bin/rastertospl rastertosplc
after you should have something like
bla@bla-178 /usr/lib/cups/filter $ ls -la
lrwxrwxrwx 1 root root 40 Aug 23 13:39 rastertospl -> /opt/smfp-common/printer/bin/rastertospl
lrwxrwxrwx 1 root root 40 Aug 23 13:51 rastertosplc -> /opt/smfp-common/printer/bin/rastertospl
The first file is probably created via install script while the second one is “fix” to “File “/usr/lib/cups/filter/rastertosplc” not available: No such file or directory” problem.
After you did this, add printer via wizard and try to print test page.
NFS stands for Network File System and through NFS, a client can read and/or write a remote share on an NFS server (like on local hard disk)
The first step to set up NFS client/server is to install nfs-utils and nfs-utils-lib packages on both systems (server and client)
yum install nfs-utils nfs-utils-lib
chkconfig --levels 235 nfs on
service nfs start
For example, the server IP is 10.0.0.1 and the client 10.0.0.2.
I’d like to use /test and /var/test directories from the client system. To make them accessible we must “export” them on the server.
From the client system, the NFS share is usually accessed as the user “nobody”. If the directory isn’t owned by nobody, the read/write access from NFS client should be made as root.
In this howto, the /test dir will be used as root while the /var/test will be used as “nobody”. If /var/test directory doesn’t exist, create the dir and change the ownership to the user/group 65534 (nonexistant user/group).
chown 65534:65534 /var/test
The next step (on the server side) is to modify /etc/exports
and add the next lines
The no_root_squash parameter means access dir as root (all files copied/created from client will be owned by root).
After you modify /etc/exports, run exportfs -a to make the changes effective.
The next step (on the client side) is to create the directories where you want to mount the NFS shares
mkdir -p /mnt/test
mkdir -p /mnt/var/test
Mount NFS shares with
mount 10.0.0.1:/test /mnt/test
mount 10.0.0.1:/var/test /mnt/var/test
Verify the settings with:
The result should be something like
[root@client ~]# df -h
Filesystem Size Used Avail Use% Mounted on
10.0.0.1:/test 100G 25G 75G 25% /mnt/test
100G 25G 75G 25% /mnt/var/test
The result should be something like
[root@client ~]# mount
10.0.0.1:/test on /mnt/test type nfs (rw,addr=10.0.0.1)
10.0.0.1:/var/test on /mnt/var/test type nfs (rw,addr=10.0.0.1)
To mount the NFS shares at boot time, add the next lines in /etc/fstab file
10.0.0.1:/test /mnt/test nfs rw,sync,hard,intr 0 0
10.0.0.1:/var/test /mnt/var/test nfs rw,sync,hard,intr 0 0
Don’t forget to check the settings after reboot