收藏: PHP 程序员的调试技术
http://www.ibm.com/developerworks/library/os-debug/
http://www.ibm.com/developerworks/library/os-debug/
1. LAMP, 这个不用说 2. php5-mysql 相当于jdbc 驱动 3. php5-gd 图形库,没有它出不来captcha 4. 本站邮箱及smtp服务器 5. php-mbstring. 有了它,才有mb_strlen()函数,对非西欧字符串进行操作时才会把一个字符的长度视为1 待续。。。
搜了半天,最后按下面这种方法搞定的: (不用xml做配置文件的系统都是耍流氓,像httpd.conf这种东西的层次感太不明确了) 引用 NameVirtualHost *:80 <VirtualHost *:80> ServerName 111.111.111.111 <Location /> Order deny,allow Deny from all </Location> </VirtualHost> <VirtualHost*:80> ServerName www.myblog.com DocumentRoot /home/me/myblog … </VirtualHost>
这一般是因为运行httpd的进程没有权限访问你的应用所在的目录; 你这个目录的所有者是不是root? 搞了半天,最佳方案是: 1. 新建一个linux账号和组,比如myblog/myblog 2. 用这个账号登录,然后在它的个人目录下建立你的应用目录 3. 修改httpd.conf,找到User和Group两项,改成myblog, myblog
引用 $date +%Y%m%d%H%M%S ## yyyyMMddHHmmss, 如20130601160505
可以参考这两个: http://stackoverflow.com/questions/800294/how-to-get-started-deploying-php-applications-from-a-subversion-repository http://stackoverflow.com/questions/7049724/php-svn-whats-the-best-way-to-deploy-svn-tag-to-production 我根据上面的弄了一个糙的: timestamp=`date +%Y%m%d%H%M%S` svn export http://…/svn/myblog/trunk/myblog /home/admin/myblog/$timestamp unlink /home/admin/myblog/current ln -s /home/admin/myblog/$timestamp /home/admin/myblog/current sudo /usr/sbin/apachectl stop sudo /usr/sbin/apachectl start
试了半天,发现要这样写才行 引用 RewriteEngine on RewriteRule ^/$ /homepage/index.htm [PT] 1. 首页"/"前后要用^和$包裹起来,表示只重写首页 2. 如果不写[PT],apache就会去linux根目录(而不是应用根目录)查找 /homepage/index.htm这个文件 3. 如果把[PT]改成[R],则会发现302跳转,用户的浏览器里会出现http://…/homepage/index.htm
让一台机上的每个php应用有自己的php.ini ,相当于tomcat下每个应用都有自己的web.xml 看这里: http://linuxers.org/howto/how-specify-different-phpini-files-each-websites-apache
大家都知道,A包含B时必须包含B的绝对路径,才不会因为A的位置改变而导致错误。 那么绝对路径怎么来?有个人给出的方法不错: 在每个php的文件开头写上: <?php set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER[‘DOCUMENT_ROOT’] ); ?> Now anywhere you do an include you can do something like: <?php include ( "Templates/header.inc") ?>
ubuntu用apt安装的apache2 主配置文件:/etc/apache2/apache2.conf, httpd.conf已经废弃不用了。 端口配置: /etc/apache2/ports.conf VirtualHost配置: 每个host都定义在/etc/apache2/sites-available文件夹里作为独立文件,然后在/etc/apache2/sites-enabled以连接的方式引用定义文件 Mod配置: 机制与VirtualHost类似 日志文件:/var/log/apache2/ 目录下 php.ini: /etc/php5/apache2/php.ini (以phpinfo()打印的为准) centos中的apache2 主配置文件:/etc/httpd/conf/httpd.conf VirtualHost配置:/etc/httpd/conf.d/all-sites.conf apache可执行文件:/usr/sbin/apachectl, 如sudo /usr/sbin/apachectl restart mac os中的apache2 注:mac os中自带了apache和php,不需要另外安装 主配置文件:/etc/apache2/httpd.conf VirtualHost配置:/etc/apache2/extra/httpd-vhosts.conf . 配置前要去主配置文件中把这行去注释:Include /private/etc/apache2/extra/httpd-vhosts.conf apache可执行文件:/usr/sbin/apachectl, 如sudo /usr/sbin/apachectl restart