源码搭建lamp和lnmp环境
1: lamp和lnmp解释lampn分别代表:linux、apache、mysql、php、nginx。安装大概思路如下:
linux环境安装就省略了。
1:mysql安装在两个环境都一样的。
2: lnmp环境下nginx的安装。
3: lamp环境下apache的安装。
4: php在安装的时候应该算最复杂的了吧。其中,针对不同环境的编译选项不同。apache的编译选项--with-apxs2=/usr/local/apache2/bin/apxs,这里apache的安装目录在/usr/local/apache2/。nginx的编译选项--enable-fpm。
2: mysql的安装,直接上安装脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/bin/sh
LANG=C
if [ -d "/usr/local/mysql/" ];then
echo "mysql is install"
exit 1
else
echo "mysql in not install"
fi
my_gcc=`rpm -qa gcc`
if [[ -n "$my_gcc" ]];then
echo "$my_gcc"
else
yum -y install gcc
fi
my_gcc_c=`rpm -qa gcc-c++`
if [[ -n "$my_gcc_c" ]];then
echo "$my_gcc_c"
else
yum -y install gcc-c++
fi
my_make=`rpm -qa make`
if [[ -n "$my_make" ]];then
echo "$my_make"
else
yum -y install make
fi
my_tar=`rpm -qa tar`
if [[ -n "$my_tar" ]];then
echo "$my_tar"
else
yum -y install tar
fi
my_openssl=`rpm -qa openssl`
if [[ -n "$my_openssl" ]];then
echo "$my_openssl"
else
yum -y install openssl
fi
my_openssl_devel=`rpm -qa openssl-devel`
if [[ -n "$my_openssl_devel" ]];then
echo "$my_openssl_devel"
else
yum -y install openssl-devel
fi
my_cmake=`rpm -qa cmake`
if [[ -n "$my_cmake" ]];then
echo "$my_cmake"
else
yum -y install cmake || (echo "install cmake failed, exit 2.";exit 2)
fi
my_ncurses=`rpm -qa ncurses`
if [[ -n "$my_ncurses" ]];then
echo "$my_ncurses"
else
yum -y install ncurses
fi
my_ncurses_devel=`rpm -qa ncurses-devel`
if [[ -n "$my_ncurses_devel" ]];then
echo "$my_ncurses_devel"
else
yum -y install ncurses-devel
fi
#make clean
#rm-f CMakeCache.txt
mkdir -p /data/mysql
groupadd mysql
useradd -g mysql -M -s /sbin/nologin mysql
cd /usr/local/src
tar -zxvf mysql-5.6.29.tar.gz
cd mysql-5.6.29
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
if [ $? -ne 0 ];then
echo "configure error. exit 2"
exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make
make install
echo "install mysql success. mysql is in /usr/local/mysql"
#cd /usr/local/mysql
#chown -R mysql:mysql/usr/local/mysql
#./scripts/mysql_install_db --user=mysql-datadir=/data/mysql
#cp support-files/my-default.cnf /etc/my.cnf
#cp support-files/mysql.server /etc/init.d/mysqld
#bin/mysqld_safe --user=mysql &
#/etc/init.d/mysqld start
先简单将mysql设置如下:
cd /usr/local/mysql
chown -R mysql:mysql/usr/local/mysql
./scripts/mysql_install_db --user=mysql-datadir=/data/mysql
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
/usr/local/mysql/bin/mysqld_safe --user=mysql &
配置文件my.cnf配置如下:
socket = /data/mysql/mysql.sock
basedir = /usr/local/mysql
datadir = /data/mysql
进入mysql设置:
mysql -uroot -S /data/mysql/mysql.sock
select user,host,password from mysql.user; 默认的root是空密码,有两个没用户的。
UPDATE `user` SET `password`=PASSWORD('xxxx') WHERE `User`='root';
delete from mysql where user='';
flush privileges;
mysql配置完成,两个环境都是由php操作mysql,这个并无差别。
2: nginx的安装,直接上安装脚本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/sh
LANG=C
if [ -d "/usr/local/nginx/" ];then
echo "nginx is install"
exit 1
else
echo "nginx in not install"
fi
my_gcc=`rpm -qa gcc`
if [[ -n "$my_gcc" ]];then
echo "$my_gcc"
else
yum -y install gcc
fi
my_gcc_c=`rpm -qa gcc-c++`
if [[ -n "$my_gcc_c" ]];then
echo "$my_gcc_c"
else
yum -y install gcc-c++
fi
my_make=`rpm -qa make`
if [[ -n "$my_make" ]];then
echo "$my_make"
else
yum -y install make
fi
my_tar=`rpm -qa tar`
if [[ -n "$my_tar" ]];then
echo "$my_tar"
else
yum -y install tar
fi
my_pcre=`rpm -qa pcre`
if [[ -n "$my_pcre" ]];then
echo "$my_pcre"
else
yum -y install pcre
fi
my_pcre_devel=`rpm -qa pcre-devel`
if [[ -n "$my_pcre_devel" ]];then
echo "$my_pcre_devel"
else
yum -y install pcre-devel
fi
my_zlib=`rpm -qa zlib`
if [[ -n "$my_zlib" ]];then
echo "$my_zlib"
else
yum -y install zlib
fi
my_zlib_devel=`rpm -qa zlib-devel`
if [[ -n "$my_zlib_devel" ]];then
echo "$my_zlib_devel"
else
yum -y install zlib-devel
fi
my_openssl=`rpm -qa openssl`
if [[ -n "$my_openssl" ]];then
echo "$my_openssl"
else
yum -y install openssl
fi
my_openssl_devel=`rpm -qa openssl-devel`
if [[ -n "$my_openssl_devel" ]];then
echo "$my_openssl_devel"
else
yum -y install openssl-devel
fi
cd /usr/local/src
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
if [ $? -ne 0 ];then
echo "configure error. exit 2"
exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make
make install
echo "install nginx success. nginx is in /usr/local/nginx"
exit 0
nginx操作如下:
/usr/local/nginx/sbin/nginx-t 检查配置
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx-s stop
3: apache的安装,直接上安装脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#!/bin/sh
LANG=C
if [ -d "/usr/local/apr/" ];then
echo "apr is install"
exit 1
else
echo "apr in not install"
fi
if [ -d "/usr/local/apr-util/" ];then
echo "apr_util is install"
exit 1
else
echo "apr-util in not install"
fi
if [ -d "/usr/local/apache2/" ];then
echo "apache2 is install"
exit 1
else
echo "apache2 in not install"
fi
my_gcc=`rpm -qa gcc`
if [[ -n "$my_gcc" ]];then
echo "$my_gcc"
else
yum -y install gcc
fi
my_make=`rpm -qa make`
if [[ -n "$my_make" ]];then
echo "$my_make"
else
yum -y install make
fi
my_tar=`rpm -qa tar`
if [[ -n "$my_tar" ]];then
echo "$my_tar"
else
yum -y install tar
fi
my_libtool=`rpm -qa libtool`
if [[ -n "$my_libtool" ]];then
echo "$my_libtool"
else
yum -y install libtool
fi
my_pcre=`rpm -qa pcre`
if [[ -n "$my_pcre" ]];then
echo "$my_pcre"
else
yum -y install pcre
fi
my_pcre_devel=`rpm -qa pcre-devel`
if [[ -n "$my_pcre_devel" ]];then
echo "$my_pcre_devel"
else
yum -y install pcre-devel
fi
my_zlib=`rpm -qa zlib`
if [[ -n "$my_zlib" ]];then
echo "$my_zlib"
else
yum -y install zlib
fi
my_zlib_devel=`rpm -qa zlib-devel`
if [[ -n "$my_zlib_devel" ]];then
echo "$my_zlib_devel"
else
yum -y install zlib-devel
fi
my_openssl=`rpm -qa openssl`
if [[ -n "$my_openssl" ]];then
echo "$my_openssl"
else
yum -y install openssl
fi
my_openssl_devel=`rpm -qa openssl-devel`
if [[ -n "$my_openssl_devel" ]];then
echo "$my_openssl_devel"
else
yum -y install openssl-devel
fi
cd /usr/local/src
tar -zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr
if [ $? -ne 0 ];then
echo "configure error. exit 2"
exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make
make install
echo "install apr success. apr is in /usr/local/apr"
cd /usr/local/src
tar -zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
if [ $? -ne 0 ];then
echo "configure error. exit 2"
exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make
make install
echo "install apr-util success. apr-util is in /usr/local/apr-util"
cd /usr/local/src
tar -zxvf httpd-2.4.18.tar.gz
cd httpd-2.4.18
./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
if [ $? -ne 0 ];then
echo "configure error. exit 2"
exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make
make install
echo "install apache2 success. apache2 is in /usr/local/apache2"
apache的启动与关闭:
/usr/local/apache2/bin/apachectl -k start
/usr/local/apache2/bin/apachectl -k stop
4.1: lnmp下php的安装,安装脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
#!/bin/sh
LANG=C
if [ -d "/usr/local/php" ];then
echo "php is install"
exit 1
else
echo "php in not install"
fi
my_epel=`rpm -qa epel-release`
if [[ -n "$my_epel" ]];then
echo "$my_epel"
else
yum -y install epel-release
sed -i 's/^#baseurl/baseurl/;s/^mirrorlist/#mirrorlist/' /etc/yum.repos.d/epel.repo
fi
my_gcc=`rpm -qa gcc`
if [[ -n "$my_gcc" ]];then
echo "$my_gcc"
else
yum -y install gcc
fi
my_gcc_c=`rpm -qa gcc-c++`
if [[ -n "$my_gcc_c" ]];then
echo "$my_gcc_c"
else
yum -y install gcc-c++
fi
my_make=`rpm -qa make`
if [[ -n "$my_make" ]];then
echo "$my_make"
else
yum -y install make
fi
my_tar=`rpm -qa tar`
if [[ -n "$my_tar" ]];then
echo "$my_tar"
else
yum -y install tar
fi
my_pcre=`rpm -qa pcre`
if [[ -n "$my_pcre" ]];then
echo "$my_pcre"
else
yum -y install pcre
fi
my_pcre_devel=`rpm -qa pcre-devel`
if [[ -n "$my_pcre_devel" ]];then
echo "$my_pcre_devel"
else
yum -y install pcre-devel
fi
my_zlib=`rpm -qa zlib`
if [[ -n "$my_zlib" ]];then
echo "$my_zlib"
else
yum -y install zlib
fi
my_zlib_devel=`rpm -qa zlib-devel`
if [[ -n "$my_zlib_devel" ]];then
echo "$my_zlib_devel"
else
yum -y install zlib-devel
fi
my_openssl=`rpm -qa openssl`
if [[ -n "$my_openssl" ]];then
echo "$my_openssl"
else
yum -y install openssl
fi
my_openssl_devel=`rpm -qa openssl-devel`
if [[ -n "$my_openssl_devel" ]];then
echo "$my_openssl_devel"
else
yum -y install openssl-devel
fi
my_libxml2=`rpm -qa libxml2`
if [[ -n "$my_libxml2" ]];then
echo "$my_libxml2"
else
yum -y install libxml2
fi
my_libxml2_devel=`rpm -qa libxml2-devel`
if [[ -n "$my_libxml2_devel" ]];then
echo "$my_libxml2_devel"
else
yum -y install libxml2-devel
fi
my_libcurl=`rpm -qa libcurl`
if [[ -n "$my_libcurl" ]];then
echo "$my_libcurl"
else
yum -y install libcurl
fi
my_libcurl_devel=`rpm -qa libcurl-devel`
if [[ -n "$my_libcurl_devel" ]];then
echo "$my_libcurl_devel"
else
yum -y install libcurl-devel
fi
my_libjpeg_devel=`rpm -qa libjpeg*|grep devel`
if [[ -n "$my_libjpeg_devel" ]];then
echo "$my_libjpeg_devel"
else
yum install libjpeg libjpeg-devel -y
fi
my_libpng=`rpm -qa libpng`
if [[ -n "$my_libpng" ]];then
echo "$my_libpng"
else
yum -y install libpng
fi
my_libpng_devel=`rpm -qa libpng-devel`
if [[ -n "$my_libpng_devel" ]];then
echo "$my_libpng_devel"
else
yum -y install libpng-devel
fi
my_freetype=`rpm -qa freetype`
if [[ -n "$my_freetype" ]];then
echo "$my_freetype"
else
yum -y install freetype
fi
my_freetype_devel=`rpm -qa freetype-devel`
if [[ -n "$my_freetype_devel" ]];then
echo "$my_freetype_devel"
else
yum -y install freetype-devel
fi
my_openldap=`rpm -qa openldap`
if [[ -n "$my_openldap" ]];then
echo "$my_openldap"
else
yum -y install openldap
fi
my_openldap_devel=`rpm -qa openldap-devel`
if [[ -n "$my_openldap_devel" ]];then
echo "$my_openldap_devel"
else
yum -y install openldap-devel
fi
my_libmcrypt=`rpm -qa libmcrypt`
if [[ -n "$my_libmcrypt" ]];then
echo "$my_libmcrypt"
else
yum -y install libmcrypt
fi
my_libmcrypt_devel=`rpm -qa libmcrypt-devel`
if [[ -n "$my_libmcrypt_devel" ]];then
echo "$my_libmcrypt_devel"
else
yum -y install libmcrypt-devel
fi
testldap=`ls -al /usr/lib/libldap*`
if [[ -n "$testldap" ]];then
echo "$testldap"
else
cp /usr/lib64/libldap* /usr/lib/
fi
cd /usr/local/src/
tar -zxvf php-5.6.17.tar.gz
cd php-5.6.17
./configure--prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --enable-fpm
#--with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config
if [ $? -ne 0 ];then
echo "configure error. exit 2"
exit 2
fi
echo "*******************************************"
echo "configure success"
echo "*******************************************"
echo "sleep 5, and begin make and make install"
sleep 5
make
make install
echo "install php success. php in /usr/local/php."
lnmp环境下php是使用php-fpm,lnmp环境最后配置的操作步骤如下:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
注意下php-fpm.conf的listen配置,后续要跟nginx的对得上:
listen = 127.0.0.1:9000
nginx的配置如下:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root/$fastcgi_script_name;
include fastcgi_params;
}
测试php:
vi /usr/local/nginx/html/mytest.php
<?php
echo "mytest";
?>
访问http://localhost:8809/mytest.php,测试使用的是虚拟机,url需要自行测试。
测试php的mysql模块:
$link=mysql_connect('127.0.0.1','root','zwh@654');
if(!$link){
echo "unlink to mysql";
}else{
echo "mysql is link success";
}
lnmp配置完成。
4.2 lamp下php的安装,安装脚本只需要把--enable-fpm改为--with-apxs2=/usr/local/apache2/bin/apxs,然后安装即可。
注意,如果机器有安装fpm,把安装的路径和解压缩的文件删除掉或者备份到其它地方。不然可能会安装不成功。
lamp的最后配置如下:
1: apache上配置支持php,vi /usr/local/apache2/conf/httpd.conf
AddType application/x-httpd-php .php
LoadModule php5_module modules/libphp5.so
配置完重启apache。/usr/local/apache2/bin/apachectl -k restart
测试如上。
lamp搭建完成。
注:脚本中有一些软件需要下载,请到官网下载源码包,或者直接谷歌download 对应的文件名下载即可。
页:
[1]