Linux Centos7 配置与部署apache + php

Centos7 配置与部署apache + php 项目

先安装apache,然后再装php。

这样的安装顺序,安装php的时候会在apache里面会自动给你装好php相关的配置,我之前就是先装的php然后再安装apache,结果各种打不开页面,解析php是失败,东查西找浪费了很多时间,最后还是没有解决,然后还是选择按照这个顺序重装apache+php,就没问题了。

1.安装apache

#安装apache
yum -y install httpd

2.安装php

直接用yum -y install php 安装的php版本比较旧(php 5.4版本),下面是通过第三方源的方式安装php7.3版本,你也可以自己选择安装php的版本

#安装epel第三方源
yum -y install epel-release 

#安装remi第三方源
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

#你可以查看 /etc/yum.repos.d/里面会多出来 epel.repo 和 remi.repo 和各种版本的php
[root@VM_0_5_centos conf.modules.d]# cd /etc/yum.repos.d/
[root@VM_0_5_centos yum.repos.d]# ls
CentOS-Base.repo   epel.repo         remi.repo          remi-glpi93.rep   remi-php54.repo  
remi-php72.repo    remi-safe.repo    CentOS-Epel.repo   remi-glpi91.repo  remi-glpi94.repo   
remi-php70.repo    remi-php73.repo   epel-testing.repo  remi-glpi92.repo  remi-modular.repo  
remi-php71.repo    remi-php74.repo

#再安装yum-config-manager仓库管理工具,用来指定php版本来安装
yum -y install yum-utils

#使用yum-config-manager 来安装php7.3,你也可以自行选择版本,
yum-config-manager --enable remi-php73

#指定好版本后安装php
yum -y install php
 
#安装php相关常用的拓展(我这里拓展是安装常用的,但是后面发现会报错说没有mysqli 
和 json无法使用 ,所以我在这里加多了个 php-mysql  php-json,如果你使用redis的
话可以再加上php-redis)
yum -y install php-opcache php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel  php-mysql  php-json

#如果想查看你能安装什么包的话可以输入
yum search php73

#按照php-fpm
yum -y install php73-php-fpm.x86_64
#也可以直接
yum -y install php-fpm

#然后启动php-fpm
systemctl restart php-fpm.service

#查看端口9000是否启动了
[root@VM_0_5_centos yum.repos.d]# netstat -tunlp |grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      2843/php-fpm: maste

#php的配置文件在 /etc/opt/remi/php73/php-fpm.d/www.conf 里面的user和group默认是apache的,如果你是用nginx,这里需要把z

安装完php后,可以去查看apache的配置
#在/etc/httpd/conf.modules.d/里面会多出来个15-php.conf等配置文件
[root@VM_0_5_centos ~]# cd /etc/httpd/conf.modules.d/
[root@VM_0_5_centos conf.modules.d]# ls
00-base.conf  00-dav.conf  00-lua.conf  00-mpm.conf  00-proxy.conf  00-systemd.conf  01-cgi.conf  15-php.conf
#打开看一下15-php.conf文件,里面会加载两个model模块,分别是libphp7.so,libphp7-zts.so
 <IfModule !mod_php5.c>
   	<IfModule prefork.c>
  		   LoadModule php7_module modules/libphp7.so
   	</IfModule>
 </IfModule>
  <IfModule !mod_php5.c>
    	<IfModule !prefork.c>
   			 LoadModule php7_module modules/libphp7-zts.so
 		 </IfModule>
</IfModule>

#上面两个加载的模块就是在/etc/httpd/modules/ 里面
[root@VM_0_5_centos httpd]# cd /etc/httpd/modules/
[root@VM_0_5_centos modules]# ls
libphp7-zts.so          mod_cache_socache.so        mod_lbmethod_bytraffic.so  mod_reflector.so
libphp7.so              mod_cgi.so                  mod_lbmethod_heartbeat.so  mod_remoteip.so
More--------------

如果先安装了php再安装apache,上面几个moudles可能需要你自行下载放进去,然后再引用,虽然说是这么操作,但是我这么做完还是没用。。。。。下次我会再次这么安装并解决这个坑,然后再发一篇博客。

3.在站点根目录里面新建index.php文件

#编写php访问phpinfo();
vim /var/www/html/index.php

#在里面输入
<?php
	phpinfo();
?>

#然后再去到/etc/httpd/conf/httpd.conf里面 把ServerName 设置成你的ip地址
vim /etc/httpd/conf/httpd.conf

ServerName 198.161.155.1:80
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
     AllowOverride all
     # Allow open access:
     Require all granted
</Directory>

#重启httpd服务
systemctl restart httpd
然后在浏览器访问ip地址发现什么都没有,一片空白
#于是我去修改php.ini开启错误报告
vim /etc/php.ini

#修改为
display_errors = On
error_reporting = E_ALL | E_STRICT 

#禁用的函数,查看里面是否有phpinfo(),如果有的话请删掉
disable_functions =   

#检查你编写phpinfo()的那个文件,看看里面的格式,我是
<?
	phpinfo();
?>
我就一直是空白,甚至开启了错误报告也是空白,因为标签没写对
应该要换成
<?php
	phpinfo();
?>

#或者在php.ini 里面把short_open_tag Off 改成 (使用短标签)
short_open_tag On

#重启php-fpm`
systemctl restart php-fpm

#重启httpd
systemctl restart httpd

访问项目的时候报错 Message: Call to undefined function mysqli_init()

#需要安装php-mysql
yum -y install php-mysql

利用端口映射访问不同的项目

#进入httpd的配置文件
vim /etc/httpd/config/httpd.config

#增加监听端口
Listen 80
Listen 70
Listen 8088

#添加虚拟主机 在Apache2.4.x版本 NameVirtualHost 已经无效了 只需要直接增加虚拟主机配置就好
#如果你的apache版本低于2.4.x 则需要增加NameVirtualHost来开启虚拟主机
NameVirtualHost *:8088

 <VirtualHost *:8088>
 	  ServerName 192.168.3.1:8088
      DocumentRoot "/var/www/html/xxx"
      <Directory "/var/www/html/xxx">
          AllowOverride All
          Options Indexes FollowSymLinks
          Require all granted
      </Directory>
  </VirtualHost>
  <VirtualHost *:70>
 	  ServerName 192.168.3.1:70
      DocumentRoot "/var/www/html/xxx"
      <Directory "/var/www/html/xxx">
          AllowOverride All
          Options Indexes FollowSymLinks
          Require all granted
      </Directory>
  </VirtualHost>

#然后重启一下http服务
systemctl restart httpd

#也可以在/etc/httpd/conf/ 里面自定义一个test.conf文件,把上面的配置虚拟主机配置放进去
vim /etc/httpd/conf/test.conf

 <VirtualHost *:8088>
 	  ServerName 192.168.3.1:8088
      DocumentRoot "/var/www/html/xxx"
      <Directory "/var/www/html/xxx">
          AllowOverride All
          Options Indexes FollowSymLinks
          Require all granted
      </Directory>
  </VirtualHost>
  <VirtualHost *:70>
 	  ServerName 192.168.3.1:70
      DocumentRoot "/var/www/html/xxx"
      <Directory "/var/www/html/xxx">
          AllowOverride All
          Options Indexes FollowSymLinks
          Require all granted
      </Directory>
  </VirtualHost>
#保存退出,然后去到 httpd配置文件里面增加include
vim /etc/httpd/conf/httpd.conf
#在里面任意位置增加
Include conf/test.conf

#然后再重启一下服务器就好了
systemctl restart httpd



#输入ip地址加端口号访问发现无法访问,这时需要检查你的防火墙端口号是否开放
firewall-cmd --list-ports
#发现只开放了80端口,现在需要把70 和 8088端口开放
firewall-cmd --zone=public --add-port=70/tcp --permanent 
firewall-cmd --zone=public --add-port=8088/tcp --permanent 
firewall-cmd --reload

#再次查看开放的端口
[root@VM_0_5_centos trunk]# firewall-cmd --list-ports
80/tcp 8088/tcp 70/tcp 443/tcp

#然后再次输入ip+端口号访问,还是不行,因为我是租的服务器,腾讯云的服务器,需要在你的后台设置安全组开放70 8088端口,阿里云服务器和其他服务器同理

#这次再次访问就成功了




  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值