Ubuntu 安装 PHP 和 Composer

本文根据 Install / Upgrade to PHP 7.3Download ComposerPackagist 中国全量镜像ppa:ondrej/php FAQs 实践并记录。

添加 PPA

sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update

安装 PHP

PHP FPM

sudo apt install -y php7.3-fpm
  • 软件包 php7.3php-commonphp7.3-cliphp7.3-commonphp7.3-jsonphp7.3-opcachephp7.3-readline 会被自动安装。
  • 不能在 php7.3 后安装 php7.3-fpm,否则会和 libapache2-mod-php7.3 冲突。
  • 安装成功后 php7.3-fpm 会自动启动,并自动设置为开机启动。

PHP 拓展

sudo apt install -y php7.3-bcmath php7.3-curl php7.3-gd php7.3-mbstring php7.3-mysql php7.3-xml php7.3-zip

配置 PHP

TODO:进一步理解和优化配置。

# PHP CLI
sudo sed -i 's/display_errors = .*/display_errors = On/' /etc/php/7.3/cli/php.ini
sudo sed -i 's/error_reporting = .*/error_reporting = E_ALL/' /etc/php/7.3/cli/php.ini
sudo sed -i 's/memory_limit = .*/memory_limit = 512M/' /etc/php/7.3/cli/php.ini
sudo sed -i 's/;date.timezone.*/date.timezone = UTC/' /etc/php/7.3/cli/php.ini

# PHP FPM
sudo sed -i 's/error_reporting = .*/error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED/' /etc/php/7.3/fpm/php.ini
sudo sed -i 's/memory_limit = .*/memory_limit = 512M/' /etc/php/7.3/fpm/php.ini
sudo sed -i 's/upload_max_filesize = .*/upload_max_filesize = 50M/' /etc/php/7.3/fpm/php.ini
sudo sed -i 's/post_max_size = .*/post_max_size = 50M/' /etc/php/7.3/fpm/php.ini
sudo sed -i 's/;date.timezone.*/date.timezone = UTC/' /etc/php/7.3/fpm/php.ini

# PHP Pools
sudo sed -i 's/user = www-data/user = www/' /etc/php/7.3/fpm/pool.d/www.conf
sudo sed -i 's/group = www-data/group = www/' /etc/php/7.3/fpm/pool.d/www.conf
sudo sed -i 's/listen =.*/listen = 127.0.0.1:9000/' /etc/php/7.3/fpm/pool.d/www.conf
sudo sed -i 's/listen.owner.*/listen.owner = www/' /etc/php/7.3/fpm/pool.d/www.conf
sudo sed -i 's/listen.group.*/listen.group = www/' /etc/php/7.3/fpm/pool.d/www.conf
sudo sed -i 's/;listen.mode.*/listen.mode = 0666/' /etc/php/7.3/fpm/pool.d/www.conf

sudo systemctl restart php7.3-fpm

安装 Composer

sudo apt install unzip

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
sudo mv composer.phar /usr/local/bin/composer

配置 Composer

仅中国大陆地区需要配置镜像。

IS_MAINLAND_CHINA=$(curl -s https://api.ip.sb/geoip | grep China)

if [ "$IS_MAINLAND_CHINA" ];then
  composer config -g repo.packagist composer https://packagist.laravel-china.org
fi

加速 Composer

composer global require hirak/prestissimo -vvv

填坑

上传文件提示:The file "" does not exist

修改 PHP FPM 配置 /etc/php/7.3/fpm/php.ini

upload_max_filesize = 16M
post_max_size = 16M
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

sed这样编辑会不有点不放心,还是直接编辑文件吧

https://api.ip.sb/geoip 这个貌似连不上呢

5年前 评论

@lovecn 后面需要再优化一下。因为想尝试写一键安装脚本,所以用了 sed。
还可以用 IPIP 提供的免费服务:https://api.ip.la/en?json

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!