快速安装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 协议》,转载必须注明作者和本文链接
这个系列的帖子 真的很帮助菜鸟 :see_no_evil: