往期回顾:

  1. Gentoo 使用笔记 Part 1
  2. Gentoo 使用笔记 Part 2
  3. Gentoo 使用笔记 Part 3

在Gentoo下打造LAMPP

最终还是选择了自己编译LAMPP平台,放弃了已整合好的XAMPP For Linux,执行效率和启动速度有了很大的提高。

安装LAMPP

添加以下use到 /etc/portage/package.use 中

net-www/apache apache2
dev-lang/php apache2 bzip2 gd mysql xml xmlrpc zip ctype pcre session unicode
#其中php里的有些use不一定是必须的,不过这些use基本上都是常用的或是将来可能会用到的


编译apache和mysql

# emerge apache mysql

在编译php前先修改下/etc/conf.d/apache2,加入php5的模块选项

APACHE2_OPTS="-D DEFAULT_VHOST -D PHP5"

然后编译php和phpmyadmin吧

# emerge dev-lang/php phpmyadmin

设置LAMPP

Gentoo下的Apache已经设置的很好了,基本上无须修改就能使用了。

在使用MySQL前还需要进行初始化设置,执行#emerge --config mysql进行设置,然后启动MySQL,进行安全设置:

# /etc/init.d/mysql start
# mysql_secure_installation

设置phpMyAdmin:

# mysql -u root -p< /usr/share/webapps/phpmyadmin/2.10.0.2/sqlscripts/mysql/2.10.0.2_create.sql
# mkdir /var/www/localhost/htdocs/phpmyadmin/config
# chmod o+rw /var/www/localhost/htdocs/phpmyadmin/config
# cp /var/www/localhost/htdocs/phpmyadmin/config.sample.inc.php /var/www/localhost/htdocs/phpmyadmin/config/config.inc.php
# chown -R apache:apache /var/www/localhost/htdocs/phpmyadmin/config

OK,启动Apache和MySQL试试看,看看能不能进入phpMyAdmin进行数据库操作,你也可以建立一个内容为<?php phpinfo() ?>的php文件来查看apache是否正常启用了php。

小技巧

我实在不喜欢那个/var/www/localhost/htdocs的目录,操作起来太不方便,我也不愿意去修改httpd.conf文件。我的做法是在/home目录下新建个web文件夹,设置owner为自己的普通日常用户,然后做个链接到htdocs目录里就是了。

# mkdir /home/web
# chown -R punkid:apache /home/web
/*我选择把wordpress什么的都放到这个web目录下了,并设置所有者为apache组和个人用户*/
# chmod ug+rw -R /home/web
/*给予apache组和个人用户读写权限*/

然后切换到htdocs文件夹下做几个链接进来吧

# cd /var/www/localhost/htdocs
# ln -sf /home/web/wordpress wp
# ln -sf /home/web/drupal drupal

这样我输入http://localhost/wp时就可以访问/home/web/wordpress下的wp blog了,同理http://localhost/drupal则进入了/home/web/drupal的目录操作

顺带把win下的几个音乐,电影资源文件夹也链接进来以便给我的朋友们下载

# ln -sf /mnt/win_f/Audio Audio
# ln -sf /mnt/win_f/Movie Movie

如果你不想别人从外部访问的话,在你不希望别人访问的文件夹下建立个.htaccess的隐藏文件,输入以下内容:

Order deny,allow
Deny from all
Allow from 127.0.0.1

如果你不愿意把apache和MySQL都加入开机启动程序,而又嫌分别输入/etc/init.d/apache start/etc/init.d/mysql start麻烦的话,可以在/etc/init.d/下建立一个lampp启动脚本。你在该目录下输入vi lampp会自动帮你填补好脚本框架的,我的脚本是这样的(有点粗糙,不过能用:D )

#!/sbin/runscript
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

depend() {
    need net
}

svc_start() {
    ebegin "Starting LAMPP"
    /etc/init.d/apache2 start && /etc/init.d/mysql start
    eend ${?} "Failed to start LAMPP"
}

svc_stop() {
    ebegin "Stopping LAMPP"
    /etc/init.d/apache2 stop && /etc/init.d/mysql stop
    eend ${?} "Failed to stop LAMPP"
}

svc_restart() {
    ebegin "Restarting LAMPP"
    /etc/init.d/apache2 restart && /etc/init.d/mysql restart
    eend ${?} "Failed to restart LAMPP"
}

执行/etc/init.d/lampp start,/etc/init.d/lampp stop,/etc/init.d/lampp restart即可启用,停用以及重新启动apache和MySQL。

另外,我自己用python写了个小程序,用来监视apache的访问记录的。你可以copy以下代码到任意.py文件中,加入执行权限( chmod +x logmonitor.py )就可以运行了

#!/usr/bin/python
import os,time

today = time.strftime('%d/%b/%Y') #specify the date format
log_path = '/usr/lib/apache2/logs/access_log' #如果你更改了apache log存放路径设置的话,请更改此处地址
logline = os.popen("cat %s | grep '%s' | wc -l" %(log_path,today)).read()
showlog = "tail -f -n 20 %s | grep '%s'" %(log_path,today)

if logline.startswith('0'):
   print 'no activies recently' #如果当天没有活动记录,则不显示
else:
   os.system(showlog)

4 Reponses So Far ↓

  1. druggo:

    监控当然装 awstats 了!

  2. punkid:

    拿本机做试验用的,没必要弄个awstat做访问统计,我只要实时监控访问(下载)情况而已

  3. HicroKee:

    同学,我也是学金融的,也玩gentoo,交个朋友,我的Gtalk是我的的email~
    传文件的话,samba算了~
    不过,我更喜欢用U盘

  4. punkid:

    U盘和Samba的用途还是各有不同的,用Samba更适合经常性的域内电脑文件共享。

    因为毕业找工作的关系,我上gtalkr的机会越来越少了 :(

Leave a Reply ↓