## 安装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
问题解决