# Linux
**CentOS**
```bash
#添加epel源
yum install epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum --enablerepo=remi install php74-php
yum --enablerepo=remi install php74-php php74-php-gd php74-php-xml php74-php-sockets php74-php-session php74-php-snmp php74-php-mysql
#运行并查看版本
php74 -v
#重启命令php-fpm
systemctl restart php74-php-fpm
#添加自动启动
systemctl enable php74-php-fpm
#查看php7.4的安装路径
whereis php
#链接php文件
ln -s /opt/remi/php74/root/usr/bin/php /usr/bin/php
# The current PHP memory limit is below the recommended value of 512MB.
vi /etc/opt/remi/php74/php.ini
memory_limit = 512M
#如果你运行的是nginx而不是apache,修改
vi /etc/opt/remi/php74/php-fpm.d/www.conf
user = apache
group = apache
# Replace the values with
user = nginx
group = nginx
#卸载php7.4
yum remove php74-php*
######################################################################
#获取rpm源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum list php*
yum install -y xxx
#####################################################################
#安装php
yum install php php-devel
#安装php扩展组件
yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
```
**Ubuntu**
```bash
#安装php
#版本可选
sudo apt install php7.4
sudo apt install php7.2
#安装php扩展组件
sudo apt install php7.2-gd
sudo apt install php7.2-soap
sudo apt install php7.2-gmp
sudo apt install php7.2-odbc
sudo apt install php7.2-pspell
sudo apt install php7.2-bcmath
sudo apt install php7.2-enchant
sudo apt install php7.2-imap
sudo apt install php7.2-ldap
sudo apt install php7.2-opcache
sudo apt install php7.2-readline
sudo apt install php7.2-sqlite3
sudo apt install php7.2-xmlrpc
sudo apt install php7.2-bz2
sudo apt install php7.2-interbase
sudo apt install php7.2-pgsql
sudo apt install php7.2-recode
sudo apt install php7.2-sybase
sudo apt install php7.2-xsl
sudo apt install php7.2-cgi
sudo apt install php7.2-dba
sudo apt install php7.2-phpdbg
sudo apt install php7.2-snmp
sudo apt install php7.2-tidy
sudo apt install php7.2-zip
```
**源码安装**
1、首先进行yum安装扩展
```bash
yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c libicu-devel libmcrypt-devel
```
2、之后进行解压php
官网下载php.tar.gz文件
```bash
wget https://www.php.net/distributions/php-7.4.25.tar.gz --no-check-certificate
tar -zxvf php-7.4.25.tar.gz
cd php-7.4.25
```
3、编译安装,编译的时候可能会出现各种报错情况,下一篇主要写编译是常见的错误及解决办法:
```bash
./configure \
--prefix=/usr/local/php7 \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/php7/etc \
--with-mysql \
--with-mysqli \
--with-mysql-sock \
--enable-pdo \
--with-pdo-mysql \
--with-gd \
--with-iconv \
--with-curl \
--with-zlib \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-jpeg-dir=/usr/local/jpeg \
--with-freetype-dir \
--with-png-dir=/usr/local/pngp \
--with-bz2 \
```
4、编译成功后安装:
```bash
make && make install
```
5、安装成功后配置环境变量:
为了使用方便,可以在/etc/profile文件末尾添加php环境变量 :
```bash
PATH=$PATH:/usr/local/php/bin
export PATH
```
6、保存后刷新环境变量:
```bash
source /etc/profile #更新
```
7、查看环境变量:
```bash
echo $PATH
```
8、看到php环境变量的路径后,以后就可以直接使用php命令了,查看php版本:
```bash
php -v
```
9、现在的PHP没有.ini文件和配置文件,还需要配置PHP-FPM:
```bash
cp php.ini-production /etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
```
10、php-fpm的启动、停止和重启:
```bash
service php-fpm start #启动
service php-fpm stop #停止
service php-fpm restart #重启
```
安装成功后添加一个自定义根目录里面添加index.php文件。
# Windows
1、下载解压
需要下载线程安全的版本
https://windows.php.net/download/
```bash
php -v
```
2、将PHP作为一个模块提供给apache加载
LoadModule php7_module "PHP安装路径\php7apache2_4.dll" 在Apache中以module的方式加载PHP,“php7_module”中的“7”要和PHP的版本对应;此外,不同的PHP版本“php7apache2_4.dll”可能不同。
```bash
#文件D:\Program Files\Apache24\conf\httpd.conf
//添加
LoadModule php7_module "D:/Program Files/php/php7apache2_4.dll"
AddType application/x-httpd-php .php
//修改
DirectoryIndex index.php index.html index.htm
```
3、加载php配置
将php.ini-development文件复制一份,并改名为php.ini.
4、设置时区
```bash
#php.ini(;为注释符)
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = PRC
```
5、配置mysql模块
```bash
#php.ini
extension=php_mysqli.dll
#进入PHP安装目录,复制一份php.ini-development 改名为 php.ini 放到安装路径下,打开找到 ;extension_dir=ext,去掉注释符,将值改为 PHP安装路径\ext。
```
6、启动Apache服务器
```bash
httpd -t #测试配置文件
httpd -M #查看加载的模块
httpd #启动apache服务器
```