只需要一种选择,用中文进行转述:在AmazonLinux2上安装PHP8.1和nginx,并显示phpinfo();,直到成功

要使用Laravel9,需要PHP8.1,但amazon-linux-extras只提供PHP8.0。在查找的过程中,我遇到了php-fpm和nginx的配置问题,因此决定记录下备忘录。

在完成所有的工作之后,我写了这篇文章,如果有任何遗漏或错误,请指出并告知。非常感谢,请多多关照。

安装 PHP8.1

由于Amazon Linux Extras只提供了PHP8.0版本,因此您需要安装epel和remi。

sudo amazon-linux-extras install epel -y
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

安装PHP8.1和PHP-FPM

sudo yum install php81 php81-php-fpm

如果使用Laravel9,情况会是这样的。

sudo yum install php81 php81-php-mbstring php81-php-mysqlnd php81-php-gd php81-php-xml php81-php-fpm

我会在php中为您配置好以调用php81的设置。

sudo alternatives --install /usr/bin/php php /usr/bin/php81 1

(参考)使用Laravel需要先安装Composer。我参考了官方文档。

sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php
sudo php -r "unlink('composer-setup.php');"

nginx的安装和准备conf文件

我会安装nginx。

sudo amazon-linux-extras install nginx1

编辑/etc/nginx/nginx.conf文件中的root目录。

        root         /var/www/app/public;

在/etc/nginx/conf.d/目录下生成nginx的conf文件。
我认为以下两点是要点。

    • rootディレクトリを先ほどのnginx.confと合わせる

 

    fastcgi_passをphp81のwww.sockにする
server {
    listen 80;

    charset UTF-8;
    root  /var/www/app/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        fastcgi_pass unix:/var/opt/remi/php81/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
   }
}

将index.php放置在此处指定的root/var/www/app/public内。

<?php
phpinfo();
?>

将php-fpm与nginx一起使用。

我将编辑php-fpm的www.conf文件。

我在编辑这个录音时卡住了,因为没有写明哪里需要修改。
listen = /var/opt/remi/php81/run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
;listen.acl_users = apache,nginx

启动nginx和php-fpm。

将它们都启动并启用自动启动。

sudo systemctl start php81-php-fpm
sudo systemctl enable php81-php-fpm
sudo systemctl start nginx
sudo systemctl enable nginx

这就完成了。当访问EC2实例的公共IPv4地址时,会显示phpinfo();。

广告
将在 10 秒后关闭
bannerAds