Centos7 TP5部署和错误记录

Apache
(1) 安装
Centos7本身已经自带了httpd, 全新安装则通过

yum install -y httpd

安装完成后通过

systemctl start httpd.service

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

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

systemctl start xxx.service  // 启动xxx服务
systemctl enable xxx.service  // 设置开机自动启动
systemctl status xxx.service  // 查看xxx服务启动状态
systemctl restart xxx.service  // 重启xxx服务
systemctl stop xxx.service  // 停止xxx服务

(2) 配置
通过yum安装的Apache,会默认安装在

/etc/httpd

配置文件也在相应的目录中

vim /etc/httpd/conf/httpd.conf

httpd.conf配置文件的修改主要有以下几项:

ServerSignature On => ServerSignature Off  // 配置错误页不显示Apache版本
Options Indexes FollowSymLinks => Options FollowSymLinks  // 配置Apache不能通过目录层级进行文件访问
AllowOverride None => AllowOverride All  // 配置允许.htaccess
DirectoryIndex index.html => DirectoryIndex index.html index.php  // 配置Apache支持.php文件解析

在vi/vim中可以通过:/xxx进行搜索定位,n键查找下一项
配置成功后重启服务

PHP
(1) 安装
PHP自带5.4版本

yum install 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版本

安装成功后,在/var/www/html目录下新建一个test.php文件,键入以下代码测试Apache对.php文件的解析:

<?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服务生效。

MariaDB
由于Mysql被收购的原因,目前Centos7中直接用MariaDB代替了Mysql数据库。
(1) 安装
使用yum默认安装

yum install mariadb-server mariadb

之后通过

systemctl start mariadb.service

启动MariaDB服务[备注1]

(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; #注意路径要准确

导入成功。

PHP连接MariaDB
yum默认安装如下[备注2]

yum install php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash

组件安装完毕后,配置php.ini文件,添加sock路径

pdo_mysql.default_socket= /var/lib/mysql/mysql.sock

该sock路径可以进行全局搜索,若不配置,在链接数据库时会报错。

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

代码部署
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 -R 755 /var/www/html/AAA  // 修改AAA目录的操作权限
cut -d : -f 1 /etc/passwd  // 查看当前系统中所有用户,找到Apache对应的用户名,可能是apache或www
chown -R apache /var/www/html/Fancy  // 修改apache用户可操作AAA目录

若缺少以上的操作,则配置完访问网站时会出现Permission denied的错误提醒。

其次是数据库连接配置:
在Windows下安装Mysql时,Mysql是默认支持本地访问和IP地址访问的,因此我们配置database.php中的host为"localhost"或"127.0.0.1"都没问题。但在Centos中安装MariaDB时,因其本身的权限控制机制不同,因此默认不支持通过ip进行访问,需要将database.php中的"127.0.0.1"统一修改为"localhost",否则一直会报PDOException [2002]或[2003]的错误。
配置完成后,利用phpinfo()查看MySQL连通即可。

修改程序目录
修改程序中,application目录下config.php中的INDEX等变量名。
修改程序中,application目录下database.php目录下的数据库连接信息。

配置完成

[备注1]

[root@localhost ~]# systemctl start mariadb.service
Job for mariadb.service failed. See 'systemctl status mariadb.service' and 'journalctl -xn' for details.

数据库安装冲突或安装错误,删除后,彻底清理文件夹,重新安装

yum remove mariadb maridb-server
rm -rf /var/lib/mysql.
yum install mariadb-server mariadb

[备注2]
Error: php70w-common conflicts with php-common-5.4.16-42.el7.x86_64
版本不匹配:
(1)降级PHP
(2)查找对应版本:

yum search ldap
#找到匹配的版本安装(我的是php70w-ldap.x86-64)
#重新安装:
yum install php70w-ldap.x86-64

修改apache配置文件,使定位到/home/www/

vim /etc/httpd/conf/httpd.conf   -- 用编辑器打开配置文件(没安装vim的同学可以用vi)
systemctl restart httpd.service  // 重启服务

更改访问路径

/etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/cdlface/public/"

参考文献:
http://www.thinkphp.cn/topic/45616.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容