标签 LNMP 升级 PHP 7.3.0 出现GCC-G++丢失以及 CC 进程被 killed 的解决方法 下的文章

Typecho 升级 PHP 7.3.0 问题汇总

PHP 7 处理能力已超越 PHP 5 的三倍之多,一起体验新的特性,学习新的知识吧。

利用 LNMP 管理脚本尝试在线升级不成功,打开升级日志发现 GCC 相关的系统环境文件丢失或被删除,导致升级程序无法正常进行。

checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `/root/lnmp1.6/src/php-7.3.0':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check

解决方法:

yum install glibc-headers gcc-c++

解决上述问题之后再次重新升级的时候,又失败了,再次打开安装日志发现 CC 进程被杀掉了,升级失败。

cc: internal compiler error: Killed (program cc1)
Please submit a full bug report,
with preprocessed source if appropriate.

解决方法:

查看 linux 系统日志.

vi /var/log/messages

如果出现 kernel: Out of memory: Kill process 意味着整个系统的内存已经不足,如果不杀死进程的话,就会导致系统的崩溃。

果然发现是整个系统内存严重不足,导致了程序被杀,所以要给系统增加虚拟内存来缓解一下物理内存的压力。

创建 Swap 分区:

dd if=/dev/zero of=/swapfile count=2048 bs=1M

验证Swap 分区:

ls / | grep swapfile

激活 Swap 分区:

chmod 600 /swapfile

授权是否成功:

ls -lh /swapfile

挂载 Swap 分区:

mkswap /swapfile

打开 Swap 分区:

swapon /swapfile

开机启动设置:

vi /etc/fstab

/swapfile none swap sw 0 0

调整 swap 空间使用的优先级:

如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。

swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

查看当前swappiness值

cat /proc/sys/vm/swappiness

修改swappiness值为60

vim /etc/sysctl.conf

找到 vm.swappiness ,如果没有则需要手动添加一行 vm.swappiness = 60 保存即可。

增加完系统虚拟内存之后,PHP 7.3.0 升级完成,在打开网站的时候提示数据库连接失败的 500 错误提示。

PHP 7 之后的数据库连接驱动不再是 PHP 5之前的 mysql 方式,而是 Pdo 连接方式。

查看网站根目录的 config.inc.php 文件

$db = new Typecho_Db('Mysql', 'typecho_');

修改成

$db = new Typecho_Db('Pdo_Mysql', 'typecho_');

20190827141738.png

升级 PHP 7.3.0 完结。