Linux下PHP配置方面的总结

LAMP——Linux,Apache,Mysql,PHP构成一个强大、高性能的web应用平台,被誉为“黄金组合“。近期想把自己的项目全部迁移到Linux下,现总结下配置过程中遇到的一些问题及解决的办法。

一、开启服务器后即使代码错误网页也不报错

这是因为linux下安装PHP时,配置文件php.ini中有的error是默认off的,这也是为了在真正给用户使用时不暴露内部服务器信息而考虑的。在自己开发调试时将这些error打开就行了,PHP5.5.10中在第478行display_errors = On;第489行display_startup_errors = On;其它的根据自己的需要打开,真正投入使用的服务器上是需要关闭的。

二、Permission denied 无法链接远程数据库

代码转移至Linux下后,还需要链接之前服务器上的数据库,但却报了一个Permission denied的错误,查阅资料后发现是因为没有将远程链接的设置打开,用如下命令可将问题解决

setsebool -P httpd_can_network_connect 1

三、svn的安装与使用

fedora下安装svn用sudo yum install subversion

checkout:svn co http://192.168.135.8/sl,后面的是服务器下的svn目录,co是checkout的简写,用checkout也是可以的。这时候需要输入自己的用户名和密码,成功后就能checkout到本地了。

commit:用命令svn commit将代码提交到服务器上,成功后会提示更新后的版本号。

update:用命令svn update可更新本地的代码。这些都是一些常用的,其它的根据svn help吧。

四、MariaDB与Mysql

MariaDB数据库是Mysql数据库的一个分支,fedora在19中以MariaDB取代Mysql,具体说明在维基百科http://zh.wikipedia.org/wiki/MariaDB里有。这边主要说的是数据库的配置方面,初始时root用户的密码是空的,需要用如下命令进行设置mysqladmin -u root -p,回车后再回车一下(因为root的密码为空,直接回车就行了),然后输入新密码以及确认密码就行了。

五、fedora下安装sublime

sublime被誉为神编辑器,在windows已经用的习惯了,在linux下也安装一个作为项目的常用编辑器。在官网http://www.sublimetext.com/2上下载对应位数Linux的安装包,解压后move到opt文件夹下,并命名为sublime,接下来需要设置在terminal中能够打开。sudo vim sublime命令新建,将如下的代码复制进去

1
2
3
#!/bin/sh
export SUBLIME_HOME="/opt/Sublime"
$SUBLIME_HOME/sublime_text $*

保存后修改权限及路径

1
2
sudo chmod 555 sublime
sudo mv sublime /usr/bin/sublime

这样的话在终端中用sublime命令就可以直接打开sublime了。

六、vim配置

让vim一直显示行号,fedora中vim的配置文件在/etc目录中,文件名为vimrc。增加一行set nu!就行了,保存后退出,再次打开时就会发现显示行号了。

七、mb_convert_encoding的问题

windows下通过php.ini开启mbstring函数库,即去掉extension=php_mbstring.dll前面的分号。linux下需要安装php-mbstring库文件:sudo yum install php-mbstring,之后修改php,ini,在里面加上一句

extension=mbstring.so

保存后重启httpd服务,service httpd restart

八、fedora不允许文件写入

这个问题纠结了好久,整个项目的权限都已经改为777了,但还是报错权限不够的错误。开始时还以为apache的配置设置为不允许写入的,后来发现并不是的,而且新版本的safe_mode已经被取消了,后来发现在一篇文章里http://bbs.sjtu.edu.cn/bbstcon?board=GNULinux&reid=1304076814提到了selinux一词,百度了一下(百度百科SELinux)发现selinux是美国国家安全局开发的强制访问控制系统,fedora下默认安装。找到selinux的安装路径,修改其配置文件config

1
2
3
4
5
6
7
8
9
10
11
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
#SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted

将SELINUX=enforcing改为SELINUX=disabled,之后reboot。

Just a beginner.<br /><a href='https://github.com/yaoshanliang/about' target='_blank'>profile</a>