[三木]十分钟系列教程快速导读:
第一篇:[三木]十分钟教程之本地安装搭建Ubuntu12.04+Apache+PHP+MySQL+phpMyAdmin+Git+Gitweb(带LAMP全自动安装shell脚本)
第二篇:[三木]十分钟教程之服务器安装搭建CentOS6.x+Nginx+PHP+MariaDB(MySQL)+phpMyAdmin+Git+Gitweb(带LAMP全自动安装shell脚本)
第三篇:PHP环境搭建:Windows 7下安装配置PHP(VC6)+Apache+Mysql+phpMyAdmin环境教程(带自启动bat脚本)
第四篇:[三木]十分钟教程之本地安装搭建Ubuntu12.04+Java7+ZendStudio9.03汉化破解(带全自动安装shell脚本)
第五篇:[三木]十分钟教程之CenotOS6.x字符(最简化)安装+网卡设置+更新yum源(带自动设置网卡和更新yum源shell脚本)
第六篇:[三木]十分钟教程之CenotOS5.x 6.x服务器初始化安全设置+用SSH Key远程登录linux服务器(带自动设置shell脚本)
第七篇:[三木]十分钟教程之CentOS6.x安装搭建Apache+MariaDB(MySQL)+PHP+SSL+phpMyAdmin+Git+Gitweb(带LAMP服务器全自动安装shell脚本)
第八篇:VisualSVN Server + Tortoise SVN windows平台快速搭建SVN服务器(带SVN Hooks(钩子)自动更新测试网站)使用教程
文章版本更新
* 2012-09-02 三木 v1.1
- [ADD] 增加Git和Gitweb的安装设置
- [ADD] 增加Git和Gitweb的全自动安装Shell脚本
- [FIX] 更新LAMP全自动安装Shell脚本到1.1版本
- [FIX] 优化文章的排版和修改一些错别字
* 2012-08-21 三木 v1.0
- [ADD] 初始版本建立
前言:
为了方便自己今后查阅和希望对一些刚接触这方面知识的同学有所帮助,少走湾路,于是根据这段时间自已的实践经验,特意整理了几篇关于搭建本地开发环境和服务器运行环境的教程。网上关于这方面的教程也很多,但往往过于陈旧,或是不全面,不详细,或是你抄我的,我抄你的,在互抄的过程中,也产生了一些错漏,所以我们可以很容易的在网上搜到这方面的资料,但真正在操作的过程中却发现按他们说的方法,不能完全正确的搭建所需要的环境。本人也是深受这些劣质文章的害,费了不少时间和精力才搭建成功。其实,只要你掌握了正确的方法,再按照正确的文档去操作,要搭建一个本地开发运行环境并不难,如果网速足够快,通过我已整理好的Shell安装脚本进行自动安装,十分钟内你完全可以搭建起一个稳定高效的开发环境。所以特意将这些教程命名为开发运行环境搭建十分钟系统教程。本篇是这系列教程的第一篇——[三木]十分钟教程之本地安装搭建Ubuntu12.04+Apache+PHP+MySQL+phpMyAdmin+Git+Gitweb(带LAMP全自动安装shell脚本)
本文安装方法适用于Ubuntu12.04个人桌面Desktop版和Ubuntu12.04.1服务器Server版。在以上这两个版本上测试通过。其它版本的安装也大同小异,大家可以自己测试。
名词解说:
LAMP是Linux web服务器组合套装的缩写,分别是Apache+MySQL+PHP。
Git是一个由林纳斯·托瓦兹为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。最初的开发动力来自于BitKeeper和Monotone。Git最初只是作为一个可以被其他前端比如Cogito或StGIT包装的后端而开发的。不过,后来Git内核已经成熟到可以独立地用作版本控制。很多有名的软件都使用Git来进行版本控制,其中有Linux内核、X.Org服务器和OLPC内核开发。想了解更多Git的信息和Git优于其它版本控制软件如Svn等可以自行Google查询。
Gitweb为Git 资源库提供了一个web界面,其中一个功能是提供RSS输入,用于跟踪项目的开发进展。简单的说,Gitweb和Git的关系就像是phpMyAdmin和MySQL的关系。
安装步骤:
- 我们使用root账户进行安装,首先切换到root账户,输入命令:
sudo su - 安装 MySQL 5,输入命令:
apt-get install mysql-server mysql-client
安装过程中需要设置root账户密码,系统会作以下提示:
New password for the MySQL "root" user:
Repeat password for the MySQL "root" user:
以上按提示操作即可 - 安装 Apache2,输入命令:
apt-get install apache2
在浏览器输入你服务器地址例入 http://192.168.0.100查看Apache2是否工作,如果显示(It works!),说明已经工作。Apache 在 Ubuntu 中默认文档根目录为 /var/www,配置文件 /etc/apache2/apache2.conf,额外配置存储子目录 /etc/apache2 例如 /etc/apache2/mods-enabled (为 Apache 模块), /etc/apache2/sites-enabled (为虚拟主机 virtual hosts), 和 /etc/apache2/conf.d.装完Apache后,每次启动apache服务器都会得到如下警告:apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
解决办法也很简单:
输入命令自动设置:
echo ServerName localhost >> /etc/apache2/httpd.conf
或者,输入命令手动:
gedit /etc/apache2/httpd.conf
在里面加上一行:
ServerName localhost
再按Esc健,输入命令‘:wq!’保存退出
启用Mod_rewrite 模块
a2enmod rewrite
启用mod_ssl 模块
a2enmod ssl - 安装 PHP5
安装 PHP5 和 Apache PHP5 模块:
apt-get install php5 libapache2-mod-php5
然后重启apache:
/etc/init.d/apache2 restart
测试 PHP5 / 可以建立一个探针页面
vi /var/www/info.php
输入下面的内容:<?php
phpinfo();
?>然后打开浏览器访问 (http://192.168.0.100/info.php),其中192.168.1.100是我电脑的IP地址,你可以更换为自己的IP地址或用localhost代替你可以看到一些已经支持的模块。 - 为PHP5取得 MySQL 支持和安装PHP相关模块
我们需要安装 php5-mysql,先查看一下php5的模块
apt-cache search php5
然后安装所需模块,例如下面的命令:
apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
重启 Apache2:
/etc/init.d/apache2 restart
然后刷新 http://192.168.0.100/info.php 查看模块支持是不是已经增加了。 - 安装phpMyAdmin来管理MySQL:
apt-get install phpmyadmin
安装过程中需要设置运行phpMyAdmin的服务器,系统会作以下提示:
Web server to reconfigure automatically:
[ ] apache2
[ ] lighttpd
这里我们选择apache2,接着提示:
Configure database for phpmyadmin with dbconfig-common?
我们选择是,进入下一步,提示输入安装MySQL时设置的密码:
Password of the database's administrative user:
将phpMyAdmin的配置文件复制到apache配置文件目录:
cp /etc/phpmyadmin/apache.conf /etc/apache2/conf.d
重启 Apache2:
/etc/init.d/apache2 restart
就可以通过(http://192.168.0.100/phpmyadmin/)地址来访问phpMyAdmin了 - 到此,我们LAMP运行环境的搭建已经完成。不过为了方便开发和相关配置文件的管理和备份,我这里将按正式服务器的目录规划,对本地的开发目录做如下优化设置。不需做优化设置的同学,可以不用做本点的任何操作。
目录规划说明:- 网站目录
- /www/wwwroot或/data/wwwroot(/www/wwwroot是/data/wwwroot的软链接,正式服务器环境data实际上是挂载在第二个硬盘上,服务器的硬盘设置为,第一个硬盘装系统,第二个硬盘放数据。)
- /data/wwwroot/log(放置日志文件)
- /data/wwwroot/web(放置网站文件)
- /data/backup(放置mysql和一些常用配置备份文件,是/backup的软链接。正式服务器环境/backup挂载在第一块硬盘上)
- /data/conf(放置apache、nginx、php、mysql等的配置文件,将原始配置文件移动到此处,并在原位置建立文件的软链接,目的是方便修改配置文件,在每次修改时不用去找配置文件在哪个位置)
- /data/mysql(mysql数据库,将原数据库移动到此处,并在原位置建立软链接)
- /data/wwwroot/git(GIT仓库位置,不安装GIT可不用设置。因为是用gitweb访问,所以放在wwwroot目录下)
- 备份目录
/backup/backup.sh(备份脚本文件)
/backup/data/(mysql和相关配置文件的备份存放目录,也可以不创建,程序会自动创建按日期存放的目录)
先按以上目录结构进行手动创建相关目录,接下来将对目录和文件的位置进行优化:
移动apache配置文件
mv /etc/apache2/apache2.conf /data/conf/
ln -s /data/conf/apache2.conf /etc/apache2/移动apache虚拟主机配置目录
mv /etc/apache2/sites-available /data/conf/
ln -s /data/conf/sites-available /etc/apache2/移动apache虚拟主机配置目录
mv /etc/apache2/sites-enabled /data/conf/
ln -s /data/conf/sites-enabled /etc/apache2/移动mysql配置文件
mv /etc/mysql/my.cnf /data/conf/
ln -s /data/conf/my.cnf /etc/mysql/移动mysql数据库
mv /var/lib/mysql /data/
ln -s /data/mysql /var/lib/应用程序安全性设定:
touch /etc/apparmor.d/disable/usr.sbin.mysqld
/etc/init.d/apparmor restart
这一步是关键,网上很多人说 在移动 /var/lib/mysql 目录后无法启动 MySQL ,甚至认为这是 Ubuntu 的一个 Bug,事实上是这里的原因。启动 MySQL
/etc/init.d/mysql start移动php配置文件
mv /etc/php5/apache2/php.ini /data/conf/
ln -s /data/conf/php.ini /etc/php5/apache2/复制phpmyadmin配置文件
cp /etc/phpmyadmin/apache.conf /data/conf/sites-available/phpmyadmin.conf// apache创建sites-available/*到sites-enabled/*的链接
a2ensite phpmyadmin.conf日志目录和文件优化:
#日志文件目录设置#####################################################
#mysql错误日志
cp -p /var/log/mysql/error.log /var/log/mysql/error.log.bak
sudo mv /var/log/mysql/error.log /data/wwwroot/log
sudo ln -s /data/wwwroot/log/error.log /var/log/mysql/
#mysql慢查询日志
cp -p /var/lib/mysql/lmg-Ubuntu-slow.log /var/lib/mysql/lmg-Ubuntu-slow.log.bak
sudo mv /var/lib/mysql/lmg-Ubuntu-slow.log /data/wwwroot/log
sudo ln -s /data/wwwroot/log/lmg-Ubuntu-slow.log /var/lib/mysql/
#Apache访问日志
cp -p /var/log/apache2/access.log /var/log/apache2/access.log.bak
sudo mv /var/log/apache2/access.log /data/wwwroot/log
sudo ln -s /data/wwwroot/log/access.log /var/log/apache2/
#Apache错误日志
cp -p /var/log/apache2/error.log /var/log/apache2/error.log.bak
sudo mv /var/log/apache2/error.log /data/wwwroot/log
sudo ln -s /data/wwwroot/log/error.log /var/log/apache2/
#Apache其它虚拟机访问日志
cp -p /var/log/apache2/other_vhosts_access.log /var/log/apache2/other_vhosts_access.log.bak
sudo mv /var/log/apache2/other_vhosts_access.log /data/wwwroot/log
sudo ln -s /data/wwwroot/log/other_vhosts_access.log /var/log/apache2/目录和文件对应关系整理:
原位置 新位置 备注
/etc/php5/apache2/php.ini /data/conf/php.ini (php配置文件)
/etc/phpmyadmin/apache.conf /data/conf/phpmyadmin.conf (phpmyadmin配置文件)
/etc/apache2/apache2.conf /data/conf/apache2.conf (apache配置文件)
/usr/share/phpmyadmin /data/wwwroot/web/phpmyadmin (phpmyadmin程序目录,这个不用作移动,在配置文件中作别名指向就可以)
/var/www/ /www/wwwroot/web (网站主目录)
/var/lib/mysql/ /data/mysql (mysql数据库)
/etc/mysql/my.cnf /data/conf/my.cnf (mysql配置文件)
/etc/apache2/sites-enabled/ /data/conf/sites-enabled/ (虚拟主机配置目录,存储软链接)
/etc/apache2/sites-available/ /data/conf/sites-available/ (虚拟主机配置目录,存储原文件)日志文件:
/var/log/mysql/error.log /data/wwwroot/log/error.log
/var/lib/mysql/lmg-Ubuntu-slow.log /data/wwwroot/log/lmg-Ubuntu-slow.log(此文件的命称和计算机名称有关,请自行修改)
/var/log/apache2/access.log /data/wwwroot/log/access.log
/var/log/apache2/error.log /data/wwwroot/log/error.log
/var/log/apache2/other_vhosts_access.log /data/wwwroot/log/other_vhosts_access.log - 网站目录
- 安装Git服务器
apt-get install git-core openssh-server openssl-client
对于Ubuntu12.04的Server版,会有如下的错误提示:
E: 未发现软件包 openssl-client
这是因为Server版的官方源中没有openssl-client的软件包信息,解决方法,把上面的命令改为:apt-get install git-core即可 - 安装Gitweb
apt-get install gitweb
修改gitweb.conf文件中$projectroot(Git仓库路径)值
打开文件:
sudo vi /etc/gitweb.conf
设置值:
$projectroot = "/data/wwwroot/git";
到目前为止gitweb搭建完毕,即可通过浏览器访问http://192.168.1.100/gitweb
192.168.1.100是gitweb服务器的IP地址 - 常用命令
1.重启apache
/etc/init.d/apache2 restart
2.重启mysql
/etc/init.d/mysql restart - Git和Gitweb全自动安装Shell脚本
注:脚本中的默认用户名、密码和路径等参数,在使用过程中请自行修改为与自己的环境设置相一致。由于编辑器的原因,脚本的代码格式有些乱。可下载后再阅读。Git和Gitweb全自动安装Shell脚本下载#!/bin/bash # ------------------------------------------------------------------------------- # Filename: git.sh # Revision: 1.1 # Date: 2012/08/29 # Author: 三木 # Email: linmaogan#gmail.com # Website: www.3mu.me # Description: 安装git和gitweb,操作系统版本为ubuntu 12.04 # Notes: 需要切换到root运行 # ------------------------------------------------------------------------------- # Copyright: 2012 (c) 三木 # License: GPL # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # you should have received a copy of the GNU General Public License # along with this program (or with Nagios); # # Credits go to Ethan Galstad for coding Nagios # If any changes are made to this script, please mail me a copy of the changes # ------------------------------------------------------------------------------- #Version 1.0 #2012-08-21 Linmaogan 初始版本建立 #Version 1.1 #2012-08-29 Linmaogan 修复SetEnv GIT_PROJECT_ROOT /data/wwwroot/git的路径bug # ------------------------------------------------------------------------------- #定义网站配置文件目录变量############################################################### wwwDir='/data/conf/sites-available'; #安装Git服务器######################################################################### apt-get install git-core openssh-server openssl-client #安装gitweb############################################################################ apt-get install gitweb #设置版本库的根目录##################################################################### cp -p /etc/gitweb.conf /etc/gitweb.conf.bak sed -i 's/$projectroot/#$projectroot/g' /etc/gitweb.conf echo '$projectroot = "/data/wwwroot/git";' >> /etc/gitweb.conf #开启网址伪静态 echo '$feature{'pathinfo'}{'default'} = [1];' >> /etc/gitweb.conf #配置apache2########################################################################### echo ' ServerAdmin webmaster@build-server ServerName nb.tooqe.com #ServerAlias guiwan.com Alias /static/ /usr/share/gitweb/static/ SetEnv GIT_PROJECT_ROOT /data/wwwroot/git SetEnv GIT_HTTP_EXPORT_ALL SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER AuthType Basic AuthName "Git" AuthUserFile /data/conf/gitweb.passwd Require valid-user Options +ExecCGI -Includes # This pattern matches git operations and passes them to http-backend ScriptAliasMatch \ "(?x)^/git/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ [0-9a-f]{2}/[0-9a-f]{38} | \ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ git-(upload|receive)-pack))$" \ /usr/lib/git-core/git-http-backend/$1 # Anything not matched above goes to displayable gitweb interface ScriptAlias /git /usr/lib/cgi-bin/gitweb.cgi/ Options FollowSymLinks +ExecCGI AddHandler cgi-script .cgi ' >> $wwwDir/gitweb.conf #设置配置文件符号链接################################################################### a2ensite gitweb.conf #创建初始密码########################################################################## htpasswd -bc /data/conf/gitweb.passwd linmaogan 123456 htpasswd -b /data/conf/gitweb.passwd liangyihua 123456 #重启所有服务器 /etc/init.d/apache2 restart
- LAMP全自动安装Shell脚本:
注:脚本中的默认用户名、密码和路径等参数,在使用过程中请自行修改为与自己的环境设置相一致。由于编辑器的原因,脚本的代码格式有些乱。可下载后再阅读。LAMP全自动安装Shell脚本下载
在脚本运行中,可能会出现这样的错误提示:
cp: 无法获取"/var/log/mysql/error.log" 的文件状态(stat): 没有那个文件或目录
这是因为复制和移动日志文件时,部份日志文件因为mysql或apache还没有正式投入使用,还没有生成相关的日志文件,这部份操作可以忽略掉,之后再通过手动去设置。#!/bin/bash # ------------------------------------------------------------------------------- # Filename: lamp.sh # Revision: 1.1 # Date: 2012/08/29 # Author: 三木 # Email: linmaogan#gmail.com # Website: www.3mu.me # Description: 快速设置本地开发环境(Apache+PHP+MySQL),操作系统为Ubuntu12.04 # Notes: 需要切换到root运行 # ------------------------------------------------------------------------------- # Copyright: 2012 (c) 三木 # License: GPL # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # you should have received a copy of the GNU General Public License # along with this program (or with Nagios); # # Credits go to Ethan Galstad for coding Nagios # If any changes are made to this script, please mail me a copy of the changes # ------------------------------------------------------------------------------- #Version 1.0 #2012-08-21 三木 初始版本建立 #Version 1.1 #2012-08-29 三木 创建网站相关目录增加“-p”参数,使父目录不存在可以自动创建 #2012-08-29 三木 增加修改防火墙命令 # ------------------------------------------------------------------------------- #安装MySQL5######################################################################### apt-get install mysql-server mysql-client #安装Apache2######################################################################## apt-get install apache2 #启用Mod_rewrite模块 a2enmod rewrite #启用mod_ssl模块 a2enmod ssl #解决server’s fully qualified domain name的提示##################################### echo ServerName localhost >> /etc/apache2/httpd.conf #安装PHP5########################################################################### apt-get install php5 libapache2-mod-php5 #为PHP5取得MySQL支持和安装PHP相关模块############################################### apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl #安装phpmyadmin##################################################################### apt-get install phpmyadmin #设置登录类型为config,不用频繁重新登录phpmyadmin sed -i "s/\['auth_type'\] = 'cookie'/\['auth_type'\] = 'config'/g 1,300s/\['password'\] = ''/\['password'\] = '123456'/g" /usr/share/phpmyadmin/libraries/config.default.php #重启Apache2######################################################################## /etc/init.d/apache2 restart #################################################################################### #################################################################################### #目录设置########################################################################### #创建网站相关目录################################################################### mkdir /www mkdir -p /data/wwwroot ln -s /data/wwwroot /www/ mkdir /data/wwwroot/log mkdir /data/wwwroot/web mkdir /data/wwwroot/git mkdir /data/conf #mkdir /data/mysql mkdir /backup ln -s /backup /data/ #配置文件目录设置###################################################################### #移动apache配置文件 cp -p /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak mv /etc/apache2/apache2.conf /data/conf/ ln -s /data/conf/apache2.conf /etc/apache2/ #移动apache虚拟主机配置目录 cp -rp /etc/apache2/sites-available /etc/apache2/sites-available-bak mv /etc/apache2/sites-available /data/conf/ ln -s /data/conf/sites-available /etc/apache2/ #移动apache虚拟主机配置目录 cp -rp /etc/apache2/sites-enabled /etc/apache2/sites-enabled-bak mv /etc/apache2/sites-enabled /data/conf/ ln -s /data/conf/sites-enabled /etc/apache2/ #复制phpmyadmin配置文件 cp -p /etc/phpmyadmin/apache.conf /etc/phpmyadmin/apache.conf.bak cp /etc/phpmyadmin/apache.conf /data/conf/sites-available/phpmyadmin.conf #apache创建sites-available/*到sites-enabled/*的链接 a2ensite *.conf #移动mysql配置文件 cp -p /etc/mysql/my.cnf /etc/mysql/my.cnf.bak mv /etc/mysql/my.cnf /data/conf/ ln -s /data/conf/my.cnf /etc/mysql/ #移动mysql数据库 cp -p /var/lib/mysql /var/lib/mysql-bak mv /var/lib/mysql /data/ ln -s /data/mysql /var/lib/ #应用程序安全性设定,解决移动/var/lib/mysql目录后无法启动MySQL的问题 touch /etc/apparmor.d/disable/usr.sbin.mysqld /etc/init.d/apparmor restart #启动MySQL /etc/init.d/mysql start #移动php配置文件 cp -p /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak mv /etc/php5/apache2/php.ini /data/conf/ ln -s /data/conf/php.ini /etc/php5/apache2/ #日志文件目录设置###################################################################### #mysql错误日志 cp -p /var/log/mysql/error.log /var/log/mysql/error.log.bak mv /var/log/mysql/error.log /data/wwwroot/log ln -s /data/wwwroot/log/error.log /var/log/mysql/ # cp -p /data/mysql/lmg-Ubuntu-slow.log /data/mysql/lmg-Ubuntu-slow.log.bak mv /data/mysql/lmg-Ubuntu-slow.log /data/wwwroot/log ln -s /data/wwwroot/log/lmg-Ubuntu-slow.log /data/mysql/ # cp -p /var/log/apache2/access.log /var/log/apache2/access.log.bak mv /var/log/apache2/access.log /data/wwwroot/log ln -s /data/wwwroot/log/access.log /var/log/apache2/ # cp -p /var/log/apache2/error.log /var/log/apache2/error.log.bak mv /var/log/apache2/error.log /data/wwwroot/log ln -s /data/wwwroot/log/error.log /var/log/apache2/ # cp -p /log/apache2/other_vhosts_access.log /log/apache2/other_vhosts_access.log.bak mv /var/log/apache2/other_vhosts_access.log /data/wwwroot/log ln -s /data/wwwroot/log/other_vhosts_access.log /var/log/apache2/ #开启防火墙 ufw allow 80 ufw allow 443 ufw allow 3306 #重启所有服务器 /etc/init.d/apache2 restart /etc/init.d/mysql restart
0 条评论。