## 安裝apache
1、查看httpd包是否可用:
`# yum list | grep httpd`
2、安裝Apache
`# yum install httpd`
3、配置ServerName
`# vi /etc/httpd/conf/httpd.conf`
如果沒有域名,則:ServerName localhost:80 或者 ServerName 127.0.0.1:80
4、啟動
`# service httpd start`
5、停止
`# service httpd stop`
6、重啟
`# service httpd restart`
7、設置為自動啟動
`# systemctl enable httpd.service`
8、瀏覽器訪問ip地址測試是否成功訪問
9、配置默認地址為項目根目錄
此時如果服務器不能識別index.php,修改配置
```
vi /etc/httpd/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
```
在其中添加index.php,且需要將index.php寫在index.html前面
apache配置
serverName = 127.0.0.1 或者具體ip地址
修改默認目錄為項目的根目錄
## 安裝PHP
1、卸載舊版本PHP
`# rpm -qa |grep php|xargs -i rpm -e {} --nodeps`
2、更新yum源
`# 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`
3、查看可使用的php包
`# yum list |grep php`
4、清除yum緩存
`# yum clean all`
5、安裝php以及常用擴展
`# yum -y install php72w php72w-cli php72w-fpm php72w-mbstring php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-mysqlnd php72w-xml php72w-cli php72w-pdo php72w-pecl-memcached php72w-pecl-redis 72w-opcache php72w-ldap php72w-bcmath`
6、安裝完成 輸入 php -v 確認是否安裝成功
7、啟動php-fpm
`# systemctl start php-fpm`
8、設置開機自啟動
`# systemctl enable php-fpm.service`
9、檢查開機自啟動是否設置成功
`# systemctl list-dependencies | grep php-fpm`
10、修改php.ini的配置
`# vi /etc/php.ini`
```
post_max_size = 16M //修改
max_execution_time = 300 //修改
max_input_time = 300 //修改
date.timezone = Asia/Shanghai //新增 將注釋取消
```
### 注意事項
開啟php.ini 錯誤提醒有助于快速發現問題所在
開啟方法: vi /etc/php.ini
找到 display_errors 開啟 display_errors=On
### 如果連接不上數據庫
報錯:sqlstate[hy000] [2002] Permission denied
考慮關閉selinux
`vi /etc/sysconfig/selinux`
把里邊的一行改為
`SELINUX=disabled`
setenforce 0 可以臨時關閉,但重啟之后還是會變成原來的狀態。
修改/etc/sysconfig/selinux文件可以永久地禁用它。重啟服務器生效
### apache網站無法訪問,問題排查:
1、查看80端口是否被其他占用
`netstat -lnp|grep 80`
正確顯示
```
```
tcp 0 0 :::80 :::* LISTEN 2539/httpd
tcp6 0 0 :::80 :::* LISTEN 2539/httpd
```
```
如果被其他應用程序占用,殺掉當前占用程序:
`tcp/java 0 0 :::80 :::* LISTEN 4770`
`# kill -9 4770`
確認是否關閉占用程序
`# netstat -lnp|grep 80`
2、查看防火墻是否開放80端口
netstat -anp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1191/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1986/master
tcp 0 52 192.168.1.72:22 192.168.168.44:57430 ESTABLISHED 2317/sshd: root@pts
tcp6 0 0 :::80 :::* LISTEN 2539/httpd
tcp6 0 0 :::22 :::* LISTEN 1191/sshd
tcp6 0 0 :::88 :::* LISTEN 2539/httpd
tcp6 0 0 ::1:25 :::* LISTEN 1986/master
raw6 0 0 :::58 :::* 7 703/NetworkManage
此狀態為 未開放 tcp 80端口
嘗試開放80端口
1)查看防火墻狀態
systemctl status firewalld
#開放80端口
[root@localhost error]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
#重啟防火墻
[root@localhost error]# systemctl restart firewalld.service
問題解決