简单的总结下这几天的工作,从安装系统,到配置环境,完成很顺利,但是配置的环境有差异,由于编码是前人所写,导致出现各种纠结错误。
前事重现:
系统:ubuntu 12.04
首先搭建 php 环境
所谓LAMP:Linux,Apache,Mysql,PHP
安装 Apache2:
sudo apt-get install apache2
安装PHP模块:
sudo apt-get install php5
安装Mysql
sudo apt-get install mysql-server
其他模块安装:
sudo apt-get install libapache2-mod-php5 sudo apt-get install libapache2-mod-auth-mysql sudo apt-get install php5-mysql sudo apt-get install php5-gd
开启rewrite伪静态模块
sudo a2enmpd rewrite
该要的组件都有了就开始配置站点环境了,由于是ubuntu系统,创建步骤可能与他人不一样,直接显示shell命令吧,图就不来了。
cd /etc/apache2/sites-available cp default web vim web
web文件内容如下:
<VirtualHost *:80> #需要绑定的域名 ServerName www.tieyou.com ServerAlias demo.tieyou.com #管理员邮箱 ServerAdmin [email protected] #网站目录 DocumentRoot "/var/webwork/tieyou/" #该网站的错误日志 ErrorLog "/var/weblog/tieyou/t.tieyou.com.errors.log" #该网站的配置日志(如访问) CustomLog "/var/weblog/tieyou/t.tieyou.com_accesses.log" common </VirtualHost>
然后退出vim编辑器,生成刚刚创建的站点配置,执行以下命令:
sudo a2ensite web
然后重启apache2即可生效(再增加站点同理):
sudo /etc/init.d/apache2 restart
在Ubuntu上装完Apache后,每次启动apache服务器都会得到如下警告:
apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
注意httpd.conf默认是个空文件
解决方法:
cd /etc/apache2 vi httpd.conf
加入以下代码
ServerName localhost
配置好web站点以后,以为一切OK,结果发现不是那样的。各种警告迎刃而来。
php运行时报Use of undefined constant。
解决方法可在php.ini里搜索
vim /etc/php5/apache2/php.ini
在文件里搜索:
error_reporting = E_ALL & ~E_DEPRECATED
在入口php文件增加error_reporting(0)就可彻底解决这个呕血问题。
有关error_reporting()函数:
error_reporting() 设置 PHP 的报错级别并返回当前级别。
; 错误报告是按位的。或者将数字加起来得到想要的错误报告等级。 ; E_ALL - 所有的错误和警告 ; E_ERROR - 致命性运行时错 ; E_WARNING - 运行时警告(非致命性错) ; E_PARSE - 编译时解析错误 ; E_NOTICE - 运行时提醒(这些经常是是你的代码的bug引起的, ;也可能是有意的行为造成的。(如:基于未初始化的变量自动初始化为一个 ;空字符串的事实而使用一个未初始化的变量) ; E_CORE_ERROR - 发生于PHP启动时初始化过程中的致命错误 ; E_CORE_WARNING - 发生于PHP启动时初始化过程中的警告(非致命性错) ; E_COMPILE_ERROR - 编译时致命性错 ; E_COMPILE_WARNING - 编译时警告(非致命性错) ; E_USER_ERROR - 用户产生的出错消息 ; E_USER_WARNING - 用户产生的警告消息 ; E_USER_NOTICE - 用户产生的提醒消息
由此可见,开发环境和最终运行环境最好是一样,不然很多悲催的事情发生,需要亡数次修改和调试。到此,开发环境就绪。
附:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = “zh_CN:zh”,
LC_ALL = (unset),
LC_PAPER = “zh_CN”,
LC_ADDRESS = “zh_CN”,
LC_MONETARY = “zh_CN”,
LC_NUMERIC = “zh_CN”,
LC_TELEPHONE = “zh_CN”,
LC_IDENTIFICATION = “zh_CN”,
LC_MEASUREMENT = “zh_CN”,
LC_TIME = “zh_CN”,
LC_NAME = “zh_CN”,
LANG = “zh_CN.UTF-8”
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”).
解决办法:
append following settings in the end of /home/your-login/.bashrc
vi /root/.bashrc
再最底部加上
export LANG=en_US:zh_CN.UTF-8 export LC_ALL=C
然后执行一下:
source /root/.bashrc
看问题描述,似乎是locale的问题,但从解决办法来看似乎与locale没什么关系。。。