AWS云服务器Bitnami套件安装WordPress更新php版本到7.4.33 图文教程

今日有小伙伴找到老季,说想要把aws云ec2服务器WordPress网站环境从php7.3升级到php7.4的版本,我们这里也记录一下这个的更新过程。

服务器情况

无法连接aws的ec2服务器

登录上aws也经历了一些波折,发现登录服务器,老是无法连接。要不就是卡住了一样。之后就没有反应了。

要么就是提示:

———-ERROR——- Unable to start command: invalid uid and gid

毫无办法,按理来说aws不可能会有这种,控制台都无法连接ec2服务器的问题。之后我们终于查到了问题,由于系统安装的是ubuntu,所以我们用终端连接时,需要使用ubuntu用户进行连接,具体如下图所示:

Run As : ubuntu

这就是重点了,如果是centos、debian等发型版用root即可。

之后重新使用”会话管理器”菜单就可以连接了。

已安装的环境bitnami套件

登录上服务器,发现服务器使用的是/opt/bitnami/ctlscript.sh命令,所以断定是bitnami的套件,而官网并没有给出详细的套件,这里我们只能自己编译了。

编译php7.4.33

安装必要的环境包

请先直接切换到root用户,然后使用如下命令进行批量下载并安装必要的包

sudo su   //直接回车
wget https://www.php.net/distributions/php-7.4.33.tar.gz
tar -xvf php-7.4.33.tar.gz
apt-get update
apt-get install -y libxml2-dev libssl-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libfreetype6-dev zlib1g-dev libzip-dev libsqlite3-dev libonig-dev

No package ‘libxml-2.0’ found

hecking for libxml-2.0 >= 2.7.6… no configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met: No package ‘libxml-2.0’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBXML_CFLAGS and LIBXML_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

但我们已经安装了libxml而且是最新的版本,在终端中指定一下路径:

export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig

No package ‘sqlite3’ found

configure: error: Package requirements (sqlite3 > 3.7.4) were not met: No package ‘sqlite3’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables SQLITE_CFLAGS and SQLITE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

apt-get install libsqlite3-dev

No package ‘oniguruma’ found

configure: error: Package requirements (oniguruma) were not met: No package ‘oniguruma’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables ONIG_CFLAGS and ONIG_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

apt-get install libonig-dev

配置PHP

cd php-7.4.33
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --enable-mbstring --with-curl --with-openssl --with-zlib --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --enable-opcache --enable-xml --enable-intl --with-gd --with-jpeg --with-freetype --with-mysqli --with-pdo-mysql

Your PHP installation appears to be missing the MySQL extension which is required by WordPress.

一开始出现了Your PHP installation appears to be missing the MySQL extension which is required by WordPress.错误,是我们没有带上mysql的扩展--with-mysqli --with-pdo-mysql,以上编译时,我们已经带上了。

编译和安装PHP7.4.33

make
sudo make install

配置php.ini

sudo cp php.ini-development /usr/local/php7/etc/php.ini

编辑 /usr/local/php7/etc/php.ini

找到mysqli.default_socketpdo_mysql.default_socket的配置区,将其设置成/opt/bitnami/mysql/tmp/mysql.sock

mysqli.default_socket = "/opt/bitnami/mysql/tmp/mysql.sock"



pdo_mysql.default_socket = "/opt/bitnami/mysql/tmp/mysql.sock"

如不配置则会出现:Error establishing a database connection

导致WordPress的运行php环境找不到mysql的链接方法

配置php-fpm.conf

编辑/usr/local/php7/etc/php-fpm.conf文件

sudo vi /usr/local/php7/etc/php-fpm.conf

内容如下:

[global]
pid = /run/php-fpm.pid
error_log = /var/log/php-fpm/error.log

[my_pool]
user = daemon
group = daemon
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm.sock
listen.owner = daemon
listen.group = daemon
pm = dynamic
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pm.max_children = 12

这里我们使用的用户及用户组都是daemon跟bitnami套件中apache设置的是一样的权限。

检查一下/var/run/这个目录是否存在,不存在则需要创建。

启动php-fpm

/usr/local/php7/sbin/php-fpm

可以通过 ps aux | grep php-fpm 命令查看我们的php是否允许成功

如果有/usr/local/php7/etc/php-fpm.conf的配置在运行说明已成功。

配置apache2

修改/opt/bitnami/apache2/conf/php-fpm-apache.conf,修改前记得备份!!!

修改配置前请确保:/usr/local/php7/etc/php-fpm.conf的php-fpm已在运行。

/opt/bitnami/apache2/conf/php-fpm-apache.conf改为以下内容

<IfDefine USE_PHP_FPM>
  <Proxy "unix:/var/run/php-fpm.sock|fcgi://www-fpm" timeout=300>
  </Proxy>
  <FilesMatch \.php$>
    <If "-f %{REQUEST_FILENAME}">
      SetHandler "proxy:fcgi://www-fpm"
    </If>
  </FilesMatch>
</IfDefine>

此处Proxy需要跟上面的php-fpm.conf配置的listen一致,否则apache2无法链接到php-fpm。

重启bitnami的apache服务

/opt/bitnami/ctlscript.sh restart apache

检查php版本是否成功

我们在网站目录中新建一个info.php内容如下

<?php phpinfo();

之后通过网址打开 http://域名/info.php 检查一下,php版本是否是7.4.33

错误日志

我们的配置过程中出现了一些未知错误,还好有日志可以查询,下面我们指一下日志位置,有需要的小伙伴可能会用到。

tail -n 20 /opt/bitnami/apache2/logs/error_log

至此,教程结束,可能不算十分完整,但大概过程就是这样的。请小伙伴们指正~