(转载)centos 7 中部署tp5框架

黑白cat

原文地址:http://www.thinkphp.cn/topic/45616.html


最近在Windows上使用TP5开发了一个网站之后,测试和上线需要在Centos上进行,因此对部署流程做一点小小的总结,希望能给后面的同学带来帮助。
大体流程与网上分享的LAMP搭建教程相同,只是有一些坑提出来大家可以少走一点弯路。

运行环境:
Centos版本:CentOS Linux release 7.3.1611
Linux版本:Linux version 3.10.0-123.el7.x86_64
Apache版本:Apache/2.4.6 (CentOS)
PHP版本:5.4.16
MariaDB版本:5.5.52
ThinkPHP版本:5.0.2

安装与配置流程:
提醒:笔者在安装配置时,默认是采用了root用户进行操作,对于Linux指令不是很熟悉的新手同学,建议在需要root权限的地方加上sudu,默认不采用root用户。
1、Apache
(1) 安装
Centos7本身已经自带了httpd, 全新安装则通过

  1. yum install -y httpd

复制代码

安装完成后通过

  1. systemctl start httpd.service

复制代码

进行启动,然后通过访问服务器IP(默认端口80),看到Apache的欢迎界面则安装成功。

以下是Centos上对服务进行管理的几条指令:

  1. systemctl start xxx.service // 启动xxx服务

  2. systemctl enable xxx.service // 设置开机自动启动

  3. systemctl status xxx.service // 查看xxx服务启动状态

  4. systemctl restart xxx.service // 重启xxx服务

  5. systemctl stop xxx.service // 停止xxx服务

复制代码
(2) 配置
通过yum安装的Apache,会默认安装在 /etc/httpd复制代码 ,因此配置文件也在相应的目录中 vi /etc/httpd/conf/httpd.conf复制代码 若在该目录下vi出来的文件是新文件,最好先通过全局查找httpd.conf文件的位置,然后对conf进行复制备份,再进行编辑。

httpd.conf配置文件的修改主要有以下几项: ServerSignature On => ServerSignature Off // 配置错误页不显示Apache版本Options Indexes FollowSymLinks => Options FollowSymLinks // 配置Apache不能通过目录层级进行文件访问AllowOverride None => AllowOverride All // 配置允许.htaccessDirectoryIndex index.html => DirectoryIndex index.html index.php // 配置Apache支持.php文件解析复制代码 其他的配置项大家可以根据具体网站的需求进行修改
(在vi中可以通过:/xxx进行搜索定位,n键查找下一项)
配置成功后重启服务

2、PHP
(1) 安装
笔者没有使用PHP新版本中的功能,因此选用yum自带的PHP5.4版本 yum install php复制代码 执行该指令时,在输入y前可以看到yum默认安装的php版本。
如果需要安装高版本的PHP,如PHP5.6或PHP7,可以通过配置Centos rpm所对应的yum源,再执行安装 yum remove php* php-common // 删除已安装的PHP版本rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm // 配置PHP7对应的yum源yum install php70w // yum执行安装PHP7复制代码 安装结束后,可以通过 php -v复制代码 查看已安装的PHP版本

另外有一种方法是通过wget下载PHP源码,并通过本地gcc进行编译和安装。该种方法笔者没有进行很深入地实践,可以通过网上的教程进行。
源码安装PHP后,执行 php -v复制代码 查看版本时会出错,这是因为源码安装没有将php加入到系统变量中,类似于windows下配置系统环境变量:
通过将安装目录下的bin文件夹中的php文件ln到 /usr/bin/ 文件夹中,这样就可以正常查看PHP版本: ln -/usr/local/php/bin/php /usr/bin/php复制代码 安装成功后,在/var/www/html目录下新建一个test.php文件,键入以下代码测试Apache对.php文件的解析:  echo phpinfo();复制代码 之后在浏览器访问http://(IP地址)/test.php, 查看到phpinfo则代表PHP安装成功。如果访问该链接显示的是以上代码,则是由于Apache配置出错,或者PHP安装错误,可以通过回顾以上Apache的配置进行调试。

(2) 配置
PHP的配置文件是php.ini, 通过yum安装的PHP会自动保存在/etc/php.ini下,同样通过cp进行备份后,通过vi进行编辑
配置项: ;date.timezone => date.timezone = PRC // 配置时区,把前面的分号去掉short_open_tag = OFF => short_open_tag = ON // 配置支持短标签, TP和部分php组件需要使用到复制代码 配置结束后重新httpd服务生效。

3、MariaDB
由于Mysql被收购的原因,目前Centos7中直接用MariaDB代替了Mysql数据库。笔者亲测,除了名称不同,其他基础功能基本一致,因此大胆地迁移到MariaDB吧。
(1) 安装
使用yum默认安装 yum install mariadb-server mariadb复制代码 之后通过 systemctl start mariadb.service复制代码 启动MariaDB服务

(2) 配置
先拷贝cnf文件,直接覆盖原配置 cp /usr/share/mysql/my-huge.cnf /etc/my.cnf复制代码 之后再通过 mysql_secure_installation复制代码 修改root用户密码
之后通过 mysql -u root -p复制代码 输入密码后登录MariaDB进行操作

一般来说我们会先在本地把数据库建好,然后导出sql文件,在Mariadb中导入sql文件的方法如下: - create database xxx; - use xxx; - source xxx.sql;复制代码 看到一大串成功的指令后则代表导入成功。

4、PHP连接MariaDB
重点来了,需要安装对应的PHP组件,从而使PHP支持MariaDB的连接。
yum默认安装如下 yum install php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash复制代码 通过PHP源码进行安装的童鞋,可以在源码编译时,就明确指定需要加入的PHP组件,这样编译后的安装便会自动将所有声明的组件自动加入到PHP中。

组件安装完毕后,配置php.ini文件,添加sock路径 pdo_mysql.default_socket= /var/lib/mysql/mysql.sock复制代码 该sock路径可以进行全局搜索,若不配置,在链接数据库时会报错。

配置完毕后,可以在刚才的test.php页面中看到已支持的PHP组件的信息。
若是简单地支持PHP连接MariaDB,则需确保PDO_MYSQL组件已支持。

5、代码部署
Apache安装后配置的默认网站路径是/var/www/html,可以在httpd.conf中进行修改
(1) 代码上传
上传主要有两种方式,一种是通过XShell等软件将代码在本地上传到服务器,另一种是通过版本控制工具,如SVN, GIT将代码从仓库拉到服务器。
笔者在开发过程中使用的是SVN工具,通过yum安装svn后,直接svn checkout到/var/www/html/Fancy中(假定当前项目文件夹为Fancy)
另外两种方式大家可以直接在网上找到对应的简便方法。

(2) 代码配置
首先是文件夹的权限与所有者修改:
因为在Centos中,我们通过上述操作下载的项目代码是没有操作权限的,默认的归属者也是root用户。而我们使用TP和Apache访问网站时,需要代码目录有一定的操作权限,并且Apache用户是可操作方 chmod -755 /var/www/html/Fancy // 修改Fancy目录的操作权限cut -d : -f 1 /etc/passwd // 查看当前系统中所有用户,找到Apache对应的用户名,可能是apache或wwwchown -R apache /var/www/html/Fancy // 修改apache用户可操作Fancy目录复制代码 若缺少以上的操作,则配置完访问网站时会出现Permission denied的错误提醒。

其次是数据库连接配置:
在Windows下安装Mysql时,Mysql是默认支持本地访问和IP地址访问的,因此我们配置databa

se.php中的host为"localhost"或"127.0.0.1"都没问题。但在Centos中安装MariaDB时,因其本身的权限控制机制不同,因此默认不支持通过ip进行访问,需要将database.php中的"127.0.0.1"统一修改为"localhost",否则一直会报PDOException [2002]或[2003]的错误。

在数据库配置修改后,可以在test.php中编写代码进行数据库连接的测试:
默认连接: $con = mysql_connect("localhost", "root", "password");if(!$con) { echo "Failed";}else { echo "Successfully"; mysql_close($con);}?>复制代码PDO连接: try { $pdo = new PDO("mysql:host=localhost;dbname=db_demo", "root", "password");$rs = $pdo->query("select * from test"); while($row = $rs->fetch()) { print_r($row); }}catch(\Exception $e) { echo $e;}?>复制代码至此安装与环境配置完成,通过访问http:(IP)/Fancy访问部署的网站。

你可能感兴趣的:(PHP,linux)