快速安装php8.2套件(ubuntu 20.04 focal)

快速安装php8.2套件(ubuntu 20.04 focal)

本文编写时间:2023-01-13
到底有多快?我这边尝试的结果是总共大约 20 分钟左右(不含操作系统)。
另外,同样是我的电脑,同样阿里云镜像库,装 centos 系统各类软件含 php 就很快,但装这个ubuntu 就比较慢,原因不太清楚(可能的一个原因是因为 ubuntu 用的人太多,阿里限制了源的下载速率来稍微省点钱)。


本文各软件版本

ubuntu 20.04.3
php 8.2.1
nginx 1.22.1
mysql 8.0.31-0ubuntu0.20.04.2
redis 7.0.7
git 2.25.1 


首先,安装阿里的 仓库(ubuntu 20.04 focal)

首先必须 apt update
安装 vim

vim /etc/apt/sources.list
内容如下,就是搞阿里云镜像。但是http的,被我改的。不搞无法更新。
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

然后
apt update

apt install -y --reinstall ca-certificates

现在,再把阿里云镜像库中的 http 改成标准的 https,
vim /etc/apt/sources.list

deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
然后。再次
apt update


安装 php 8(ubuntu 20.04 focal)

apt install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 dnsutils systemd gnupg2 lsb-release ubuntu-keyring

上面的命令需要选择多个选项。选亚洲 asia。选上海 shanghai

curl -sS 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c' | gpg --dearmor | tee /usr/share/keyrings/ppa_ondrej_php.gpg > /dev/null

echo "deb [signed-by=/usr/share/keyrings/ppa_ondrej_php.gpg] https://ppa.launchpadcontent.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list


apt update

apt install -y php8.2-cli php8.2-dev  php8.2-pgsql php8.2-sqlite3 php8.2-gd  php8.2-curl  php8.2-imap php8.2-mysql php8.2-mbstring  php8.2-xml php8.2-zip php8.2-bcmath php8.2-soap   php8.2-intl php8.2-readline  php8.2-ldap  php8.2-msgpack php8.2-igbinary php8.2-redis php8.2-swoole  php8.2-memcached php8.2-pcov  php8.2-fpm php8.2-gmp php8.2-imagick php8.2-mcrypt php8.2-uuid php8.2-yaml 

执行上面这些命令,大约15分钟左右,主要耗时就是这里。


安装阿里的 composer 镜像源(ubuntu 20.04 focal)



curl -o /usr/local/bin/composer https://mirrors.aliyun.com/composer/composer.phar

chmod +x /usr/local/bin/composer

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 

使用 root 身份执行 composer 命令,会提示输入 yes ,挺麻烦,则

vim /etc/environment
文字
export COMPOSER_ALLOW_SUPERUSER=1

然后

source /etc/environment


安装 nginx 并整合 php-fpm 服务(ubuntu 20.04 focal)


curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx"  | tee /etc/apt/sources.list.d/nginx.list

apt update
apt install nginx

改php-fpm 配置。
sed -i 's/listen\ =\ \/run\/php\/php8.2-fpm.sock/listen\ =\ 127.0.0.1:9000/g' /etc/php/8.2/fpm/pool.d/www.conf


修改 /etc/nginx/nginx.conf
第一行 
user  www-data;

然后,
rm -f /etc/nginx/conf.d/default.conf
vi /etc/nginx/conf.d/default.conf

/etc/nginx/conf.d/default.conf 文件内容如下

server {
    listen       80;
    server_name  localhost;
    charset utf-8 ;
    access_log  /var/log/nginx/host.access.log  main;
    root   /usr/share/nginx/html;
    index index.php  index.html index.htm;
    error_page 404  500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

添加一个 php 文件如下:

vi /usr/share/nginx/html/1.php

<?php
phpinfo();

启动 php-fpm 和 nginx 并验证安装正确

/etc/init.d/nginx start
/etc/init.d/php8.2-fpm start

curl localhost/1.php
# 如果能看到很多的几百行的大量输出,说明php和nginx正确安装了。


安装 mysql 8(ubuntu 20.04 focal)

apt install -y mysql-server-8.0 mysql-client-8.0

/etc/init.d/mysql start

进入mysql客户端的shell
mysql 

下面,整套设置新用户流程,先改初始,再加新用户并授权,再删除老用户。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'tb4Wn3BthR.';
flush privileges;

create user 'root'@'%' identified by 'root1234';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root1234';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
drop user root@localhost;
flush privileges;

退出shell,重新进入。此时密码已经设置好啦。

mysql -uroot -proot1234

# 这句话查看用户的加密方式。
select user, host, plugin from mysql.user\G;

# plugin: caching_sha2_password 表示老的MySQL客户端无法连接!


安装 redis 7 (ubuntu 20.04 focal)


curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list

apt update
apt install redis

/etc/init.d/redis-server start

注意和上面版本不同,如想安装redis5(ubuntu 20.04 focal)

如想redis5,啥源都不需要,直接
apt install redis-server

安装过程常见问题

E:Sub-process /usr/bin/dpkg returned an error code (1)

解决方案,删除造成问题的 包,上面的提示除了这句话,也已经告诉你包的名称,就是错误的包存在遗留,导致后面的相关包都不能正确安装。

 apt-get remove --purge 导致错误的包名

总结

感谢阿里云镜像库,但是速度不是太快。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

这个系列的帖子 真的很帮助菜鸟 :see_no_evil:

11个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
49
粉丝
7
喜欢
60
收藏
94
排名:592
访问:1.3 万
私信
所有博文
社区赞助商