当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 自编译安装APACHE2+PHP5+MYSQL5+OPENSSL
帖子发表于 : 2007-11-15 1:31 
头像

注册: 2007-09-28 2:33
帖子: 47
地址: 重庆
送出感谢: 0 次
接收感谢: 0 次
虽然现在有很多很方便的工具可以把整个安装过程傻瓜化,但是总有那么一些不尽人意的地方,比如说安装之后的一些配置文件在哪,如果要加载一些组件怎么办,。。。等等问题 所以在ubuntu能apt安装环境,XAMPP等傻瓜化软件出来的情况下,我还是首选自己编译安装,虽然有些浪费时间,但是稳定性和易操作易配置性要好的多。(首先声明 我也是个小菜,而且本贴也非原创,不过是因为自己找了些资料 成功搭建了这个平台,所以拿出来分享下 本人的ubuntu是7.10 apache php mysql openssl皆是目前稳定的最新版)

第一步:编译环境的配置(并不是都需要 不过有些朋友在编译的时候失败了就放弃了 我觉得很可惜)
我用的是官方源 如果有些包找不到请更换cn99源
代码:
sudo apt-get install build-essential flex automake autoconf make gcc g++ libgcc1 libg++ gdb kernel-package libncurses5-dev initramfs-tools module-init-tools binutils bison byacc m4 libxml2 libxml2-dev totem-xine

也许上面的包有些已经过时了 不过如果你在官方源和cn99源中都找不到 就可以忽略了 不影响编译安装过程 :)

第二步:MYSQL5的安装
到MYSQL的官方网站下载最新版本的源代码(我这里是mysql-5.0.45.tar.gz)
地址:http://dev.mysql.com/downloads/mysql/5.0.html 注意是下载源代码 页面往下拉 看到 Source downloads 第一个就是了 Compressed GNU TAR archive (tar.gz) 放到~/MyDownloads
接下来开始解压配置
代码:
cd ~/MyDownloads
sudo tar xzvf mysql-5.0.45.tar.gz -C /usr/local/src

## 解压出来之后的目录就是mysql-5.0.45
cd /usr/local/src/mysql-5.0.45

## 编译安装到/usr/local/mysql目录下 等待ing
sudo ./configure --prefix=/usr/local/mysql
sudo make
sudo make install

## 安装系统数据库
sudo ./scripts/mysql_install_db

## 以上的当前目录都应该是在/usr/local/src/mysql-5.0.45 接下来为了安全性需要设置 mysql目录的访问权限
## 创建一个名为mysql的用户 组别为mysql 并设置/usr/local/mysql的访问权限(当然你也可以不用mysql的用户名和组名)
groupadd mysql
useradd -g mysql mysql
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql

## 将mysql的配置文件放置在/etc目录 名为my.conf
sudo cp ./support-files/my-medium.cnf /etc/my.conf


至此 我们的mysql5已经安装成功 为了mysql能更好的工作 我们可以设置一些相关配置(视个人情况而定)
sudo gedit /etc/my.conf

# The MySQL server
[mysqld]
下添加
set-variable=max_connections=150 #设置最大连接数为150
query_cache_type=1 # 查询缓存

第一次启动mysql并设置root用户密码
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql&(开启mysql服务)
sudo /usr/local/mysql/bin/mysqladmin -uroot password XXXXXX(你的密码)
/usr/local/mysql/bin/mysql -uroot -pXXXXXX(刚设置的密码 该命令为登录mysql)
sudo /usr/local/mysql/bin/mysqladmin -uroot -pXXXXXX shutdown(关闭mysql服务)

mysql服务开启后 会有mysqld进程运行 可以通过 ps -e | grep mysqld 查询

第三步:OpenSSL的安装
到OpenSSL的官网下载最新版的源代码(我的是openssl-0.9.8g.tar.gz)
地址:http://www.openssl.org/source/ 下载到~/MyDownloads
代码:
## 默认安装/usr/local/ssl
cd ~/MyDownloads
tar xzvf openssl-0.9.8g.tar.gz -C /usr/local/src
cd /usr/local/src/openssl-0.9.8g
sudo ./config
sudo make
sudo make install


第四步:Apache2的安装
到Apache2的官网下载最新版的源代码(我这里是httpd-2.2.6.tar.bz2)
地址:http://httpd.apache.org/download.cgi 下载到~/MyDownloads (你也可以下载tar.gz的)

代码:
cd ~/MyDownloads
sudo tar xvfj httpd-2.2.6.tar.bz2 -C /usr/local/src
cd /usr/local/src/httpd-2.2.6
## apache2的配置比较麻烦
sudo ./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl=static --with-ssl=/usr/local/ssl --enable-mods-shared=all
## 以上配置的意思是将apache2预安装到/usr/local/apache2 安装之后的apache2能加载模块 将ssl静态编译进apache2 因为在配置过程中需要ssl的头文件 所以需要--with-ssl=/usr/local/ssl提供ssl的安装目录
sudo make
sudo make install


配置apache2
Ctrl+F 搜索 Include conf/extra/httpd-ssl.conf 并去掉前面的#
Ctrl+F 搜索 ServerName 找到一行ServerName XXX.XXX.XXX.XXX 80 的 修改为ServerName localhost:80
如果你80端口已经被占用 需要用其他端口 需要将 Listen 80 一并修改
Ctrl+F 搜索 DocumentRoot 找到一行Document .... /htdocs的 这里可以修改虚拟目录 不过要将下面不远处的
<Directory "XXXXXXX/htdocs">修改为你的虚拟目录路径 否则会出现权限问题

因为将ssl静态编译进了apache2所以在apache2启动之前配置ssl证书和密钥
用到一个配置证书和密钥小工具 可以在附件中下载 ssl.ca-0.1.tar.gz
解压缩到/usr/local/apache2/conf中
代码:
cd ~/MyDownloads
sudo tar xzvf ssl.ca-0.1.tar.gz -C /usr/local/apache2/conf
cd /usr/local/apache2/conf/ssl.ca-0.1

# 生成根证书(执行成功将在当前目录生成ca.key和ca.crt两个文件)
sudo ./new-root-ca.sh
# 部分注解如下
. . . . . .
Enter pass phrase for ca.key:              (输入一个密码)
Verifying - Enter pass phrase for ca.key:  (再输入一次密码)
. . . . . .
Enter pass phrase for ca.key:              (输入刚刚设置的密码)
. . . . . .
Country Name (2 letter code) [MY]:CN(国家代码)
State or Province Name (full name) [Perak]:Chongqing(州名)
Locality Name (eg, city) [Sitiawan]:Chongqing(城市名)
Organization Name (eg, company) [My Directory Sdn Bhd]:Ostenia(公司或组织名)
Organizational Unit Name (eg, section) [Certification Services Division]:Tech(部门名)
Common Name (eg, MD Root CA) []:Ostenia CA(根证书名)
Email Address []:yiller@yahoo.cn(E-mail地址)

# 生成服务器证书(执行成功将在当前目录生成server.csr和server.key这两个文件)
sudo ./new-server-cert.sh server (server是服务器证书的名字)
. . . . . .
# 英文注释同上

# 签署服务器证书
sudo ./sign-server-cert.sh server (server要和你刚才输入的一样)
Enter pass phrase for ./ca.key:             (输入上面设置的根证书密码)
Sign the certificate? [y/n]:y(签署证书么?废话)
1 out of 1 certificate requests certified, commit? [y/n]y(有1个证书需要被签署 同意么?同上)
# 修改证书权限并部署
sudo chmod 400 server.key
sudo mv server.key ../
sudo mv server.crt ../

现在可以运行apache2了
sudo /usr/local/apache2/bin/apachectl start(开启apache服务 2.0以后ssl是随之一起启动的 你可以用http:// 和 https://测试)
sudo /usr/local/apache2/bin/apachectl stop(关闭)
sudo /usr/local/apache2/bin/apachectl restart(重启)
在apache服务开启后 将有httpd进程运行 可以通过 ps -e | grep httpd 查看
但是现在只能浏览html网页 下一步安装php5

最后一步:php5的安装
下载源代码(我这里是php-5.2.4.tar.gz)
地址:http://www.php.net/downloads.php(目前最新版为5.2.5 可以同样安装)
代码:
cd ~/MyDownloads
sudo tar xzvf php-5.2.4.tar.gz -C /usr/local/src
cd /usr/local/src/php-5.2.4
sudo ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-openssl=/usr/local/ssl --with-mysql=/usr/local/mysql
# 以上配置的意思是 采用apache2布局 支持openssl 支持mysql数据库 php的默认安装目录是/usr/local 如果你需要指定php的安装目录 可以加上 --prefix=/usr/local/php(后面改成你的路径)
sudo make
sudo make install
# 部署php.ini配置文件 当前目录仍是/usr/local/src/php-5.2.4
sudo cp ./php.ini-dist /usr/local/lib/php.ini

现在php也已经装好了 对php的配置在/usr/local/lib/php.ini中
配置apache2以支持.php文件
sudo gedit /usr/local/apache2/conf/httpd.conf
在文件最后添加
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
DirectoryIndex index.php
</IfModule>

OK 大功告成
写个phpinfo测试下
<?php
phpinfo();
?>


附件:
文件注释: 配置ssl证书的小工具
ssl.ca-0.1.tar.gz [13.6 KiB]
被下载 177 次


最后由 yiller 编辑于 2007-11-17 17:46,总共编辑了 1 次
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-11-15 1:34 
头像

注册: 2007-09-28 2:33
帖子: 47
地址: 重庆
送出感谢: 0 次
接收感谢: 0 次
沙发自己坐~ 觉得还不错的朋友帮我顶下


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-11-28 16:20 
头像

注册: 2007-01-24 20:20
帖子: 27
地址: 山西省
送出感谢: 0 次
接收感谢: 0 次
按你的步骤,安装后启动MYSQL 提示:
Starting mysqld daemon with databases from /usr/local/mysql/var
STOPPING server from pid file /usr/local/mysql/var/benet-cs.pid
071128 16:19:52 mysqld ended

启动Apache2提示:
Syntax error on line 99 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
SSLCertificateFile: file '/usr/local/apache2/conf/server.crt' does not exist or is empty

都无法启动!


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-12-07 15:29 

注册: 2007-11-14 16:38
帖子: 16
送出感谢: 0 次
接收感谢: 0 次
经过两天的奋战,终于能运行phpinfo了,谢谢lz


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-12-29 14:18 
头像

注册: 2007-08-03 15:50
帖子: 43
送出感谢: 0 次
接收感谢: 0 次
好帖留名~~~


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-01-03 7:56 
头像

注册: 2007-08-03 15:50
帖子: 43
送出感谢: 0 次
接收感谢: 0 次
请问楼主,安装完成后我显示自己的带有中文字符的网页时中文显示是乱码的,请问有没有解决方法?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译