PHP项目部署到Centos7中

蒋星雨
2023-12-01

PHP项目部署

一、项目环境

虚拟机:Oracle VirtualBox

linux系统:Centos7

appache服务

数据库:mariadb

jdk:1.8+

php:7.1+

远程操作虚拟机工具:XShell 6或SSH Secure Shell Client或Cygwin Terminal

上传文件工具:Xftp 6

二、安装Oracle VirtualBox

Oracle官网下载地址

https://download.virtualbox.org/virtualbox/6.0.4/VirtualBox-6.0.4-128413-Win.exe

三、安装centos7+

参考阿里开源镜像站下载

https://mirrors.aliyun.com/centos/

虚拟机网络配置

1、桥接网络模式

第一步在->设置->网络 中将连接方式改为桥接网卡,界面名称选择

Intel(R) Dual Band Wireless-AC 3165

第二步在系统中修改网络配置,

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

添加如下配置

修改: BOOTPROTO=static 
修改: ONBOOT=yes 
IPADDR=192.168.1.2 (设置系统的IP,网段最好跟本物理机一致)
NETMASK=255.255.255.0(设置子网掩码)
GATEWAY=192.168.1.1(设置网关)
DNS1=8.8.8.8 (设置DNS 域名解析)
DNS2=8.8.4.4

编辑后重启网络

systemctl restart network

最好 ip addr 查看网关ip

四、安装Apache

1、下载appache

yum -y install httpd

2、开启apache服务

systemctl start httpd.service

3、设置apache开机自启

systemctl enable httpd.service

4、设置系统防火墙

Centos7默认防火墙是firewalld;如果需要外网访问到appache主目录,需要设置如下:

firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --permanent --zone=public --add-service=https

firewall-cmd --reload

5、验证是否安装apache成功

  apache默认端口是80;在本机浏览器输入虚拟机的ip地址,即可测试是否安装成功;

  或者systemctl  status httpd 查看apache的服务状态。

五、Mariadb

1、下载mariadb

1.1:先检查是否已经存在mariadb的包

rpm -qa|grep mariadb 

1.2:有则删除

批量删除    rpm -e --nodeps mariadb-*
或单个删除  rpm -e --nodeps 包名
若报未安装错误则 rpm -e 包名

1.3:下载

yum install mariadb

1.4:安装mariadb的依赖包

yum install mariadb*

2、启动服务并添加到开机自启

systemctl start mariadb.service
systemctl enable mariadb.service

3、安全设置及修改登录密码

mysql_secure_installation

=>Enter current password for root (enter for none):空格ENTER直接进入下一步

设置新密码为root;这里的登录密码必须设置为root,因为php项目中的数据库登录是root,不然无法登录报错

后面的这四步全部 N
=>Remove anonymous users? [Y/n]
=>Disallow root login remotely? [Y/n]
=>Remove test database and access to it? [Y/n]
=>Reload privilege tables now?[Y/n]

4、设置远程连接

4.1:登录数据库

mysql -uroot -proot

4.2:创建用户并授权

=>MariaDB [(none)]> create user 'root'@'%' identified by 'root';
=>MariaDB [(none)]> grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

4.3:刷新权限

=>MariaDB [(none)]> flush privileges;

4.4:查看当前的用户信息

=>MariaDB [(none)]> select host,user,password from mysql.user;

当有这么一行就说明远程添加成功了,password是内部加密的。

host user password
% root *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B

4.5:开启3306防火墙

先退出mariadb数据库

=>MariaDB [(none)]> exit

再设置防火墙,开放3306端口

firewall-cmd --zone=public --permanent --add-port=3306/tcp

重新加载防火墙,使设置生效

firewall-cmd --reload

5、扩展

1、创建一个用户格式:
create user 用户名@主机IP identified by '密码';
例如创建一个只允许特定IP访问数据库
create user 'root'@'192.168.1.1' identified by 'root';
创建一个所有Ip都可以访问的
create user 'root'@'%' identified by 'root';
2、授权格式
grant all privileges on 数据库类型 to 用户名@ip identified by '密码' with grant option;
例如给root用户授可以访问所有数据库的权限
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
授root用户只能有test数据库的所有权限
grant all privileges on test.* to 'root'@'%' identified by 'root' with grant option;
3、防火墙
查看所有已打开的端口
firewall-cmd --zone=public --list-ports
添加端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
删除端口
firewall-cmd --zone=public -remove-port=80/tcp --permanent

六、安装PHP7+

1、在centos7中先切换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

以上如出错则可尝试下面的,

yum install epel-release -y

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

更新完成后为防止冲突,先删除可能存在的php包

yum -y remove php*

2、安装PHP

yum install -y php71w

3、安装PHP依赖

yum install -y php71w-fpm php71w-opcache php71w-cli php71w-gd php71w-imap php71w-mysqlnd php71w-mbstring php71w-mcrypt php71w-pdo php71w-pecl-apcu php71w-pecl-mongodb php71w-pecl-redis php71w-pgsql php71w-xml php71w-xmlrpc php71w-devel mod_php71w

安装完成后可查看PHP版本信息

php -v

4、将mysql与php关联

yum -y install php-mysql --skip-broken

5、执行SQL

使用远程的连接工具执行sql;

数据库名称为 : binyplatformphp

字符集选择 : utf8

校验规则 : utf8_general_ci

然后将sql脚本导入执行。

七、部署项目代码

1、上传源码

将 binyplatformphp.zip 压缩文件上传到centos7中的/var/www/html下(其它目录也行);然后解压到该目录下

解压zip格式命令: unzip binyplatformphp.zip  

注:mini最小安装可能没有unzip命令,需要安装

yun install -y unzip zip  安装解压zip和压缩zip文件命令

2、设置用户/组/权限

进入到项目目录下,

cd /var/www/html/binyplatformphp

修改runtime的组和权限

chown -R apache:apache runtime/
chmod -R 777 runtime/

然后设置SELinux,编辑配置文件

vi /etc/selinux/config

按 i 插入,修改SELINUX

SELINUX=disabled

修改后按ESC +冒号:+wq。保存退出

注: 修改后需要重启系统

3、配置apache

在目录 /etc/httpd/conf.d目录下,添加vhost.conf文件,并添加配置内容

进入到该目录下

vi vhost.conf

按 i 键插入,编辑如下内容

<VirtualHost *:80>
	ServerName binyplatformphpclient.vm.com
	ServerAlias binyplatformphpadmin.vm.com binyplatformphpapp.vm.com binyplatformphppython.vm.com
	DocumentRoot /var/www/html/binyplatformphp/public
	<Directory  "/var/www/html/binyplatformphp/public">
		Options +Indexes +Includes +FollowSymLinks +MultiViews
		AllowOverride All
		Require all granted
	</Directory>
</VirtualHost>

注:binyplatformphp*.vm.com域名为自定义域名,外网无法访问。

4、配置域名映射

进入到项目目录/var/www/html/binyplatformphp/application下

cd /var/www/html/binyplatformphp/application/

编辑域名路由映射

vi route.php


Route::domain( 'binyplatformphpclient' , 'client' ) ;
Route::domain( 'binyplatformphpadmin' , 'admin' ) ;
Route::domain( 'binyplatformphpapp' , 'app' ) ;
Route::domain( 'binyplatformphppython' , 'python' ) ;
Route::domain('192.168.1.66', 'client') ;

编辑后保存退出。

注: Route::domain(‘192.168.1.66’, ‘client’) ;其中的IP为虚拟机中PHP项目所在的系统IP。

5、宿主机配置

在本地电脑中找到host文件,在C:\Windows\System32\drivers\etc中编辑hosts文件;

添加域名映射(项目所在服务器IP:域名)

192.168.1.66 binyplatformphpclient.vm.com 
192.168.1.66 binyplatformphpadmin.vm.com

八、安装JDK和java驱动

这里选择安装jdk1.8

1、下载JDK

先查看是否存在openjdk

rpm -qa | grep jdk

若存在openjdk的包则删除

rpm -e --nodeps  jdk包名
或者 yum -y remove *-openjdk-*

卸载后java或java -version不被识别。

然后上传JDK文件(如:jdk-8u191-linux-x64.tar.gz)到/usr/local下;解压到指定的安装目录下,先在/usr/local创建java文件夹

mkdir java
tar -zxvf jdk-8u191-linux-x64.tar.gz -C /usr/local/java

2、配置jdk环境变量

进入环境变量编辑

vi /etc/profile

按 i 键插入;

#java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

注:JAVA_HOME的jdk版本根据实际来定,不一定是jdk1.8.0_191;centos6是JAVAHOME;centos7之后是JAVA_HOME

编辑后按ESC键,然后按出冒号:在按wq。就保存并退出了

最后需要重启配置文件使之生效

source /etc/profile

3、配置java驱动程序

1、上传驱动文件

在虚拟机系统中新建文件夹来存储驱动文件javalib文件夹和driver文件夹

将javalib和driver文件夹上传到biny目录下

mkdir /var/biny/

2、配置环境变量

vi /etc/profile

添加(javalib的目录根据实际存放位置)

for k in /var/biny/javalib/*jar
do
 CLASSPATH=$CLASSPATH:$k
done
export CLASSPATH

3、修改配置文件

进入目录 /var/biny/driver/binyplatformphp/下

编辑config.properties

vi config.properties


[tcp_server]
## tcp监听事件;嵌入式程序和驱动之间的TCP端口
tcpListenPort=6000
## tcp socket 超时事件
socketTimeout=5000
## 重连时间
reconnectSyncTime=5

[http_server]
#WEB应用和驱动之间的http端口,端口号和php项目中application/client/conf.php中一致
httpListenPort=6010

[web_server]
### web服务器地址,需要与php项目中application/route.php中配置的域名一致
webServerDomain=http://binyplatformphppython.biny.com/
[web_socket]
webSocketPort=30050

开放6000端口

firewall-cmd --zone=public --permanent --add-port=6000/tcp
firewall-cmd --reload

4、创建启动驱动程序脚本

进入项目 /driver下

vi startup.sh

按 i 进入编辑;添加如下(目录根据实际定)

#!/bin/bash
killall -9 java
cd /var/biny/driver/binyplatformphp
nohup java BinyDriverMain &

保存退出;设置脚本开机启动;编辑系统配置

vi /etc/rc.d/rc.local

添加(脚本目录根据实际而定)

source /etc/profile
/var/biny/driver/startup.sh

最后

chmod +x /var/biny/driver/startup.sh
chmod +x /etc/rc.d/rc.local

成功后需重启系统。

5、创建定时任务

目的是定时清除指定期间内的日志文件。

创建脚本(如在 /var/biny/ 目录下)

mkdir crontab

在该文件下创建脚本

vi cleanLog2DebugError.sh

添加如下,定时清理前30天产生的日志信息(注意文件目录):

#!/bin/sh
find /var/biny/driver/binyplatformphp/ -mtime +30 -name "biny_debug.log.*" -exec rm -rf {} \;
find /var/biny/driver/binyplatformphp/ -mtime +30 -name "biny_error.log.*" -exec rm -rf {} \;
find /var/www/html/binyplatformphp/runtime/log -mtime +30 -name "*" -exec rm -rf {} \;
find /var/www/html/binyplatformphp/runtime/cache/binyplatformphp -mtime +30 -name "*" -exec rm -rf {} \;
find /var/www/html/binyplatformphp/runtime/temp -mtime +30 -name "*.php" -exec rm -rf {} \;

保存退出,再设置脚本权限

chown 777 cleanLog2DebugError.sh

设置脚本执行时间

crontab -e

添加

#例如每2分钟执行一次脚本
#*/2 * * * * /var/biny/crontab/cleanLog2DebugError.sh
#每月2日的10:00执行一次脚本
0 10 1 * * /var/biny/crontab/cleanLog2DebugError.sh

重启crond服务

systemctl restart crond

------>完成PHP的安装部署

注:该网络是桥接模式;如更换网络IP,则需要修改三处地方,

  1、修改项目所在虚拟机系统的IP /etc/sysconfig/network-scripts/ifcfg-enp0s3

   2、修改项目路由映射 /var/www/html/binyplatformphp/application/route.php

   3、修改本地物理地址的IP域名映射。C:\Windows\System32\drivers\etc\hosts

常用命令:

netstat -lntp 查看当前所有在使用的tcp端口
(mini版需要安装netstat,yum install net-tools)
netstat -lnup 查看当前在使用的udp端口


查看某一端口使用情况
netstat -lntp|grep 端口号
ps aux|grep 端口号


杀死进程
kill -9 PID号



查看已开放了哪些端口
firewall-cmd --list-ports


开放某一端口,如:6000。
firewall-cmd --zone=public --permanent --add-port=6000/tcp
开放后需要重启防火墙
firewall-cmd --reload

–如有问题,欢迎评论指出.

 类似资料: