查看“Apache”的源代码
来自Ubuntu中文
←
Apache
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
==基础== 如果你是安装到本机上测试的话,最好确保hosts的内容为这样 <pre>username@ubuntu:~$ cat /etc/hosts 127.0.0.1 localhost </pre> == 安装 == ===安装LAMP === 在新立得软件包管理器中选择 '''编辑--使用任务分组标记软件包''' 在打开的窗口中 '''勾选 LAMP SERVER''' 然后确定。 在主窗口中 '''点击绿色的对号 <u>应用</u> 按钮''' 好了 。接下来就是等待...等待新立得 自动下载安装完。 '''<u>中间会有一次提示输入mysql的root用户的密码</u>''' <pre>sudo apt-get install apache2 mysql-server php5 php5-mysql #终端命令</pre> 打开 http://localhost {| |[[Image:Apachedefault.png|thumb|center|500px|Apache默认页面]] |} ===安装phpmyadmin === 方案一:终端中运行命令 (不推荐) <pre>sudo apt-get install phpmyadmin </pre> 方案二:<br> 强烈建议不要从源里安装<br>在phpmyadmin网站上下载软件包,解压缩到本地目录/var/www/phpmyadmin<br> tips:如果你请直接解压到/var/www/phpmyadmin,如果不存在phpmyadmin,请自行创建 <br> 在终端下执行 <pre>sudo cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php</pre><pre>sudo gedit /var/www/phpmyadmin/config.inc.php </pre> 找到“blowfish_secret”在后面填上任意字母 <pre>$cfg['Servers'][$i]['auth_type']='cookie'; $cfg['Servers'][$i]['host']='localhost'; $cfg['Servers'][$i]['connect_type']='tcp'; $cfg['Servers'][$i]['compress']='false'; $cfg['Servers'][$i]['extension']='mysql';</pre> <br>保存,退出 <br>安装php5-mcrypt <pre>sudo apt-get install php5-mcrypt </pre> 编辑php配置文件<br> <pre>sudo gedit /etc/php5/apache2/php.ini </pre> 在extension下面加上 <pre>extension=php5-mcrypt.so </pre> <br> 保存,重启apache2<br>在浏览器里输入http://localhost/phpmyadmin == 配置 == 1>apache 的配置文件路径 /etc/apache2/apache2.conf 2>php.ini 路径 /etc/php5/apache2/php.ini 3>mysql配置文件 路径 /etc/mysql/my.cnf 4>phpmyadmin配置文件路径 /etc/phpmyadmin/apache.conf 5>网站根目录 /var/www<br> ===常用命令=== 1.重启apache <pre>sudo /etc/init.d/apache2 restart </pre> 2.重启mysql <pre>sudo /etc/init.d/mysql restart </pre> === 配置apache=== 终端中使用命令 <br> <pre>sudo gedit /etc/apache2/apache2.conf </pre> 在配置文件最后面加入下面几行: 添加文件类型支持<br> <pre>AddType application/x-httpd-php .php .htm .html</pre> <br> 默认字符集 根据自己需要 <pre>AddDefaultCharset UTF-8 </pre> 服务器地址<br> <pre>ServerName 127.0.0.1 </pre> 添加首页文件 三个的顺序可以换 前面的访问优先 (当然你也可以加别的 比如default.php)<br> <pre><IfModule dir_module> DirectoryIndex index.htm index.html index.php </IfModule> </pre> 修改apache的根目录DocumentRoot: <pre>sudo vim /etc/apache2/sites-enabled/000-default </pre> 修改DocumentRoot /var/www 重启Apache2服务即可。 <pre> sudo vim /etc/apache2/ports.conf #修改端口号,修改 Listen 80 </pre> <pre> sudo a2enmod rewrite #开启apache 的rewrite功能 </pre> ====Apache模块==== <pre>sudo a2enmod #启用模块</pre> <pre>sudo a2dismod #禁用模块</pre> ===配置PHP5 === 这个没什么好说的 根据个人自己需要<br> 下面是默认时区<br> <pre>;date.timezone=</pre> 去掉前面的分号 后面加个PRC 。表示中华人民共和国(就是GMT+8时区)<br> <pre>date.timezone= PRC </pre> ====PHP Modules==== <pre>aptitude search php5</pre> ===配置mysql === <pre>sudo gedit /etc/mysql/my.cnf </pre> 这里有一个地方要注意 默认:是只允许本地访问数据库的<br> <pre>bind-address 127.0.0.1</pre> 解除限制只能本地访问mysql,如果需要其他机器访问,应使用如下语句,把这“bind-address 127.0.0.1”句话用#注释掉 <pre>#bind-address 127.0.0.1 </pre> ===配置phpmyadmin=== <pre>sudo apt-get install phpmyadmin</pre> 访问 http://localhost/phpmyadmin ,phpmyadmin 默认并不是安装在 /var/www下面的而是在 /usr/share/phpmyadmin<br> 你可以把phpmyadmin复制过去 或者 链接过去 <pre>sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin</pre> 然后 终端中运行命令 <pre>sudo gedit /etc/phpmyadmin/apache.conf </pre> 然后把下面两句的路径 改为/var/www/phpmyadmin(因为我已经配置好环境,所以忘记了phpmyadmin中默认配置怎么写的。。反正就是在第三行和第四行的两句.如果我没记错的话 应该是下面这样)<br> <pre>Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> </pre> 改为:<br> <pre>Alias /phpmyadmin /var/www/phpmyadmin <Directory /var/www/phpmyadmin></pre> == 测试 phpinfo(); == 创建、测试phpinfo: <pre>sudo vi /var/www/info.php</pre> <pre><?php phpinfo(); ?></pre> 打开 http://localhost/info.php 。 {| |[[Image:Apachephpinfo.png|thumb|center|600px|Apache phpinfo页面]] |} ==性能优化== ===安装Zend Optimizer=== 要求PHP版本为5.2,不支持Ubuntu10.04的PHP5.3,请参照[[PHP5.2]]。 下载 [http://www.zend.com/en/products/guard/downloads Zend Optimizer]。 直接贴下载地址,参考版本号改(这是32位的),不然主页要注册才能下 <pre> http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz </pre> <pre>tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz</pre> <pre>cd ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp sudo mkdir /usr/local/zend sudo cp ZendOptimizer.so /usr/local/zend </pre> 编辑php.ini <pre>sudo gedit /etc/php5/apache2/php.ini</pre> 开头加入,注意标点符号要英文。 <pre>[Zend Optimizer] zend_optimizer.optimization_level=1 zend_extension="/usr/local/zend/ZendOptimizer.so"</pre> 重启apache2 <pre>sudo /etc/init.d/apache2 restart </pre> 还是上面那个phpinfo文件,要能看到如下信息 <pre>This program makes use of the Zend Scripting Language Engine: Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies</pre> ===安裝XCache=== <pre>sudo apt-get install php5-xcache</pre> <pre>root@ubuntu:/home/qii# dpkg -l | grep xcach ii php5-xcache 1.2.2-5 Fast, stable PHP opcode cacher</pre> xcache配置文件路径是 <pre>/etc/php5/conf.d/xcache.ini</pre> 编辑php.ini <pre>sudo gedit /etc/php5/apache2/php.ini</pre> 把xcache.ini的内容加入到php.ini。 重启apache2 <pre>sudo /etc/init.d/apache2 restart </pre> 检查安装是否成功 <pre>root@ubuntu:/home/qii# php -v PHP 5.2.10-2ubuntu6 with Suhosin-Patch 0.9.7 (cli) (built: Oct 23 2009 16:30:10) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with XCache v1.2.2, Copyright (c) 2005-2007, by mOo</pre> 还有前面info.php页应该有XCache模块 {| |[[Image:Apachexcache.png|thumb|center|500px|info页面的XCache模块]] |} 这里有点奇怪的是,如果不把xcache.ini的内容加入php.ini,apache也能载入XCache,但info.php上没XCache模块。 ===安装eAccelerator=== <pre>sudo apt-get install php5-dev</pre> 下载 [http://www.eaccelerator.net/ eAccelerator] <pre>wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2</pre> <pre>tar jxvf eaccelerator-0.9.6.1.tar.bz2</pre> <pre>cd eaccelerator-0.9.6.1 </pre> <pre>phpize sudo ./configure -enable-eaccelerator=shared sudo make</pre> <pre>qii@ubuntu:~/tmp/eaccelerator-0.9.6.1$ sudo make install Installing shared extensions: /usr/lib/php5/20060613+lfs/ </pre> 修改php.ini文件,安装为Zend扩展,最好放在开头,放到[zend]之前,免的出莫名其妙的问题: <pre>sudo vi /etc/php5/apache2/php.ini</pre> <pre>[eaccelerator] zend_extension="/usr/lib/php5/20060613+lfs/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" eaccelerator.allowed_admin_path="/var/www/control.php"</pre> 创建cache缓存目录 <pre>eaccelerator.cache_dir="/var/cache/eaccelerator" 这里定义cache路径</pre> 默认值是/tmp/eaccelerator,这非常简单因为任何人都对该目录可写,但是并不明智,因为重启后系统会自动清理该目录。一个更好的地方是/var/cache/eaccelerator。创建该目录并确保它对eAccelerator的使用者可写(通常该用户是你的网络服务器运行者,可能是www-data)。 使用默认值的话这样继续: <pre>mkdir /tmp/eaccelerator</pre> <pre>chmod 777 /tmp/eaccelerator</pre> 改成 /var/cache/eaccelerator的话这样继续,先改php.ini <pre>eaccelerator.cache_dir="/var/cache/eaccelerator" </pre> <pre>sudo mkdir /var/cache/eaccelerator sudo chown root:www-data /var/cache/eaccelerator sudo chmod u=rwx,g=rwx,o= /var/cache/eaccelerator</pre> 复制控制文件control.php到网站根目录 <pre>sudo cp control.php /var/www/</pre> 修改control.php的$user和$pw,默认是admin和eAccelerator <pre>sudo vi /var/www/control.php </pre> 重启apache <pre>sudo /etc/init.d/apache2 restart</pre> 打开 http://localhost/control.php {| |[[Image:NginxeAcceleratorcontrol.png|thumb|center|500px|eAccelerator control.php页面]] |} 查看之前的info.php页面,有下列字段: <pre>This program makes use of the Zend Scripting Language Engine: Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator </pre> == 其他== === PDO的安装<br> === <pre>pecl search pdo</pre> <pre>sudo pecl install pdo</pre><pre>sudo pecl install pdo_mysql </pre> 最后编辑php.ini <pre> sudo gedit /etc/php5/apache2/php.ini </pre> 再最后面添加两行: <pre>extension = pdo.so </pre><pre>extension = pdo_mysql.so </pre> === GD库的安装<br> === <pre>sudo apt-get install php5-gd</pre> <br> 记得装完重启apache <pre>sudo /etc/init.d/apache2 restart</pre> ==排错== === 无法解析php文件,浏览器提示下载所要打开的php文件 === 执行:<br> <pre> sudo apt-get install libapache2-mod-php5 sudo a2enmod php5</pre> <br> 如果显示为:<br> <pre> This module does not exist!</pre> <br> 那就要彻底删除libapache2-mod-php5,然后重新安装它<br> <pre> sudo apt-get remove --purge libapache2-mod-php5 sudo apt-get install libapache2-mod-php5</pre> 重启apache2<br> <pre> sudo /etc/init.d/apache2 restart</pre> 清除浏览器缓存,然后输入http:localhost<br> ==虚拟主机== 见[[Apache虚拟主机指南]] ==屏蔽迅雷== 迅雷的user-agent是 <pre>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ) Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 3.5.20706) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)</pre> 通过.htaccess文件屏蔽迅雷的下载/盗链功能: <pre> RewriteEngine On #Anti Thunder RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0\)$ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0\)$ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1;\ \)$ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0;\ \.NET\ CLR\ 3\.5\.20706\)$ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1;\ SV1;\ \.NET\ CLR\ 1\.1\.4322;\ \.NET\ CLR\ 2\.0\.50727\)$ [NC] RewriteRule ^.*\.(gif|jpg|bmp|zip|rar|exe|mp3|swf)$ / [NC,F] </pre> 你可以用Firefox的扩展[https://addons.mozilla.org/en-US/firefox/addon/59/ user-agent switcher]来测试效果。 如果你的资料地址已经被迅雷索引,请修改资源的路径地址。 如果用户手动用UltraEdit改写迅雷的user-agent,亦或者本机装虚拟机,虚拟机挂代理,迅雷挂虚拟机中的代理,这种屏蔽方法就失效了。 ==参考== [https://www.deleak.com/blog/2010/07/10/anti-thunder/ anti thunder] [[Category:服务器]]
返回
Apache
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息