首页 > 代码库 > LAMP安装
LAMP安装
`linux apache mysql PHP 的简写
把apache,Mysql和PHP安装到系统上,来运行PHP
--------------------------------------------------------------------------------------------------------
mysql安装:
下载软件包 #wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73-linux-x86_64-glibc23.tar.gz (当前在哪个目录就会保存在哪个目录)
#tar zxvf /usr/local/src/mysql* //解压
#mv mysql* /usr/local/mysql //挪动位置
#useradd -s /sbin/nologin mysql //建立mysql用户
#cd /usr/local/mysql
#mkdir -p /data/mysql //创建datadir,数据哭会放到这里
#chown -R mysql:mysql /data/mysql //更改权限
#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
--user定义数据库的所属主 -datadir定义数据库装到哪里
配置mysql
拷贝配置文件
#cp support-files/my-large.cnf /etc/my.cnf
拷贝启动文件并修改属性
#cp support-files/mysql.server /etc/init.d/mysqld
#chmod 755 /etc/init.d/mysqld
修改启动脚本
#vim /etc/init.d/mysqld
修改的地方有:datadir=/data/mysql
把启动脚本加入系统服务项,设置开机启动
#chkconfig --add mysqld
#chkconfig mysqld on
#service mysqld start
查看进程
#ps aux |grep mysqld
删除mysql
find / -name mysqld --exec rm-rf {} \;
再停止相应的服务和端口
mysql5.7的安装
1. 下载包
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz
2. 解压
tar xxvf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.12-linux-glibc2.5-x86_64 /usr/local/mysql
3. 初始化
useradd -M -s /sbin/nologin mysql
mkdir -p /data/mysql
chown mysql /data/mysql
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --datadir=/data/mysql
注意,这一步最后一行会有一个提示
[Note] A temporary password is generated for root@localhost: B*s1i(*,kXwg
最后面的字符串为root密码。
./bin/mysql_ssl_rsa_setup --datadir=/data/mysql
4. 拷贝配置文件和启动脚本
cp support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf //编辑或者修改
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
socket = /tmp/mysql.sock
cp support-files/mysql.server /etc/init.d/mysqld
vi /etc/init.d/mysqld //编辑或者修改
basedir=/usr/local/mysql
datadir=/data/mysql
5. 启动服务
/etc/init.d/mysqld start
6. 设置root密码
使用初始化密码登录
/usr/local/mysql/bin/mysql -uroot -p‘B*s1i(*,kXwg‘ //进入后直接设置密码
mysql>set password = password(‘mypass‘); //一定要设置一下新密码
退出来,再使用新的密码登录就可以了
还有一种情况,就是不知道初始化密码
vi /etc/my.cnf
在[mysqld]下面增加一行
skip-grant-tables
重启 /etc/init.d/mysqld restart
/usr/local/mysql/bin/mysql -uroot
mysql> update user set authentication_string=password(‘123333‘) where user=‘root‘;
退出来后,更改my.cnf,去掉刚加的 skip-grant-tables
重启 /etc/init.d/mysqld restart
此时就可以使用新的密码了。
--------------------------------------------------------------------------------------------------------
Apache编译安装
#cd /usr/local/src/
#wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.23.tar.gz
安装库文件
yum install -y pcre pcre-devel apr apr-devel
解压:
#cd httpd-x.x.x
./configure \
--prefix=/usr/local/apache2 \
--with-included-apr \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--with-pcre
报错:
mod_deflate has been requested but can not be built due to prerequisite failures
解决办法:
yum install -y zlib-devel
configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.
解决:
下载apr apr-util 解压到srclib/apr srclib/apr-util
编译和安装
#make
#make install
以上两步都可以用 echo $?来检测知否正确执行
apache的mpm工作模式
#/usr/local/apache2/bin/apachectl -M
其中以mpm_开头的就是apache的mpm工作模式
扩展:
Prefork MPM : 这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。
这个MPM具有很强的自我调节能力,只需要很少的配置指令调整。最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以致需要使用的内存超出物理内存的大小。
Worker MPM : 此多路处理模块(MPM)使网络服务器支持混合的多线程多进程。由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。但是,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。
每个进程可以拥有的线程数量是固定的。服务器会根据负载情况增加或减少进程数量。一个单独的控制进程(父进程)负责子进程的建立。每个子进程可以建立ThreadsPerChild数量的服务线程和一个监听线程,该监听线程监听接入请求并将其传递给服务线程处理和应答。
不管是Worker模式或是Prefork 模式,Apache总是试图保持一些备用的(spare)或者是空闲的子进程(空闲的服务线程池)用于迎接即将到来的请求。这样客户端就不需要在得到服务前等候子进程的产生。
Event MPM:以上两种稳定的MPM方式在非常繁忙的服务器应用下都有些不足。尽管HTTP的Keepalive方式能减少TCP连接数量和网络负载,但是 Keepalive需要和服务进程或者线程绑定,这就导致一个繁忙的服务器会耗光所有的线程。 Event MPM是解决这个问题的一种新模型,它把服务进程从连接中分离出来。在服务器处理速度很快,同时具有非常高的点击率时,可用的线程数量就是关键的资源限 制,此时Event MPM方式是最有效的。一个以Worker MPM方式工作的繁忙服务器能够承受每秒好几万次的访问量(例如在大型新闻服务站点的高峰时),而Event MPM可以用来处理更高负载。值得注意的是,Event MPM不能在安全HTTP(HTTPS)访问下工作。
对于Event 模式,apache给出了以下警告:
This MPM is experimental, so it may or may not work as expected .
这种MPM目前处于试验状态,他可能不能按照预期的那样工作。
如何查看apache的三种MPM
[root@localhost apache]# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
如果你看到perfork.c 则表示当前为perfork MPM模式。worker.c 则表示为 worker MPM模式
如何更改MPM:
[root@localhost httpd-2.4.1]# ./configure --prefix=/usr/local/apache2worker --enable-so --with-mpm=worker [root@localhost httpd-2.4.1]# make [root@localhost httpd-2.4.1]# make install
指定--with-mpm=NAME 选项指定MPM,NAME就是你想使用的MPM的名称。不指定模式的话,默认为Prefork MPM
如何设置成Event MPM
同我上面的方法一样,只需要在安装的时候加上以下参数: --enable-nonportable-atomics=yes
设置perfork MPM
<IfModule mpm_prefork_module>
StartServers 5
#数量的服务器进程开始
MinSpareServers 5
#最小数量的服务器进程,保存备用
MaxSpareServers 10
#最大数量的服务器进程,保存备用
MaxRequestWorkers 250
#最大数量的服务器进程允许开始
MaxConnectionsPerChild 0
# 最大连接数的一个服务器进程服务
</IfModule>
设置 worker MPM
<IfModule mpm_worker_module>
StartServers 3
# 初始数量的服务器进程开始
MinSpareThreads 75
# 最小数量的工作线程,保存备用
MaxSpareThreads 250
# 最大数量的工作线程,保存备用
ThreadsPerChild 25
# 固定数量的工作线程在每个服务器进程
MaxRequestWorkers 400
# 最大数量的工作线程
MaxConnectionsPerChild 0
# 最大连接数的一个服务器进程服务
</IfModule>
设置event MPM
<IfModule mpm_event_module>
StartServers 3
MinSpareThreads 75
MaxSpareThreads 250
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 0
</IfModule>
httpd 2.4的安装
centos6 yum安装的apr版本已经不适用httpd-2.4版本了。所以,需要源码编译apr以及apr-util
1. 下载源码:
cd /usr/local/src/
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.12.tar.bz2
wget http://mirrors.cnnic.cn/apache/apr/apr-1.5.2.tar.bz2
wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.5.4.tar.gz
2. 安装apr
tar jxvf apr-1.5.2.tar.bz2
cd apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
3. 安装apr-util
tar zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
make && make install
4. 安装httpd
yum install gcc make cmake pcre-devel
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/
make && make install
apache加入系统启动项
第一步:
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
第二步:
vim /etc/init.d/httpd
在第一行#!/bin/sh下增加两行文字
# chkconfig: 35 70 30
# description: Apache
第三步:
保存退出
chkconfig --level 35 httpd on
------------------------------------------------------------------------------
php编译安装--安装在最后
cd /usr/local/src
wget http://am1.php.net/distributions/php-5.3.27.tar.gz
./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql \
--with-libxml-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-bz2 \
--with-openssl \
--with-mcrypt \
--enable-soap \
--enable-gd-native-ttf \
--enable-mbstring \
--enable-sockets \
--enable-exif \
--disable-ipv6
需要安装的包:
jpeglib.h : libjpeg libjpeg-devel
libxm12-devel
openssl opensll-devel
bzip2 bzip2-devel
libpng libpng-devel
freetype freetype-devel
epel-release
libmcrypt-devel
#make
#make install
拷贝php配置文件
cp php.ini-production /usr/local/php/etc/php.ini
修改apache配置
#vim /usr/local/apache2/conf/httpd.conf
找到:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
改成
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
如果不修改这个地方 访问网站会显示403
找到:
AddType application/x-gzip .gz .tgz
该行下面添加:
AddType application/x-httpd-php .php
想要支持php脚本解析,必须要加上对应类型
找到
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
改为
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
增加对php的索引,如果一个站点默认页是index.php,那么就得加上这个index.php的支持
在找到:
ServerName localhost:80
把#去掉
查看配置是否有问题
/usr/local/apache2/bin/apachectl -t
如果显示 Syntax OK 就没事了
/usr/local/apache2/bin/apachectl start
测试PHP解析:
curl localost/1.php
如果有规则 清除规则
LAMP安装
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。