13544870125 发表于 2015-8-20 11:48:24

LAMP第一部分安装mysql

  
1. 安装mysql
cd /usr/local/src/
免安装编译二进制的包
wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
  tar zxvf /usr/local/src/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz 解压
mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql挪到mysql下并重命名为mysql
  useradd -s /sbin/nologin mysql增加一个mysql用户不让它登录
mkdir -p /data/mysql   要存放mysql数据
  cd /usr/local/mysql
  chown -R mysql:mysql /data/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql初始化,要运行一些mysql必要的文件mysql表,数据库放在/data/mysql
  echo $?
  ]# ls /data/mysql
mysqltest
生成了mysql库
  mysql]#ls support-files/
mysql]#cp support-files/mysql.server /etc/init.d/mysqld   mysql启动的脚本====
放到这里是为了让它放到系统的服务列表里面去
  chmod 755 /etc/init.d/mysqld
  chkconfig --add mysqld
chkconfig mysqld on

  
vim /etc/init.d/mysqld需要修改一下配置文件================
加上如下内容
basedir=/usr/local/mysql    mysql所在的路径
datadir=/data/mysql         要存放mysql数据
  
mysql]# ls support-files/
my-huge.cnf
my-large.cnf
my-small.cnf
  
cp support-files/my-huge.cnf /etc/my.cnf    也可以打开my.cnf 修改他的端口
vim /etc/my.cnf   里面有配置
注释下面两行,是做主从用的,防止占用过多资源,
#log-bin=mysql-bin
#server-id       = 1
  
service mysqld start
或者
/etc/init.d/mysqldstart   mysql启动脚本========================
   ps aux |grep mysqld
netstat -lnp |grep mysql
   ls /data/mysql查看一下生成的文件
可以查看一下错误日志
  
  
2. 安装apache
wget http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz
tar zvxf httpd-2.2.16.tar.gz
cd httpd-2.2.16
  ./configure --prefix=/usr/local/apache2 --with-included-apr--with-pcre --enable-mods-shared=most
prefix后面是安装apache的目录,apr可以让我们在多个平台使用apache,pcre叫正则相关的,后面是模块
  如果上面出错就需要安装一下gcc和apr    yum install -y gcc apr
echo $?
  make
make install
ls /usr/local/apache2/   可以查看生成的文件
  启动apache
/usr/local/apache2/bin/apachectl start
ps aux |grep httpd
  【httpd-2.4版本编译安装方法】http://www.aminglinux.com/bbs/thread-7283-1-1.html
2.2用到他自带的apr,2.4要用到系统的apr
【如何指定使用worker/prefork】 http://www.lishiming.net/thread-944-1-1.html
【apache两种工作模式】http://www.lishiming.net/thread-838-1-2.html
  
  
php必须在前面两者后面安装
  3.安装php
wget http://cn2.php.net/distributions/php-5.3.28.tar.gz
tar zxf php-5.3.28.tar.gz
  cd php-5.3.28    安装相关需要的包,继续执行下面的操作
./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
  如果安装出错就是缺少一些库,需要安装一下 yum install -y libxml2-devel比如这个,后面都跟-devel
(不确定的时候可以查找一下 yum list |grep bzip2)很准确
  
注意,最后到这里mcrypt 这个包,你需要安装epel的扩展源才可以看到
不然yum list |grep mcrypt 是搜索不到mcrypt
  centos6
32位epel yum源下载地址:wget www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm
64位下载地址: www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm
  rpm -ivh epel-release-6-8_32.noarch.rpm
  然后就可以搜索yum list |grep mcrypt
  centos6
32位epel yum源下载地址: www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm
64位下载地址: www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm
  下载完后
rpm -ivh 'www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm'
  yum install -y libmcrypt-devel然后才可以成功安装这个
  
make
make install
  
【php5.5、5.6编译安装方法】http://www.aminglinux.com/bbs/thread-7284-1-1.html
  =========================================================mysql,apache,php安装完成了
  
  4. 配置apache结合php
vim /usr/local/apache2/conf/httpd.conf    apache的配置文件,里面和很多模块
  ls /usr/local/apache2/modules/   apache模块的路径
  /usr/local/apache2/bin/apachectl -M   查看静态动态的模块
里面的share(动态)是通过LocadModule控制的
静态的模块就是把这些静态模块塞到了我们的执行文件
ls /usr/local/apache2/bin/httpd里,把他们变成一个模块,可以理解是内核模块
  
apache配置文件最后的那个模块LoadModule php5_module      modules/libphp5.so
是上面的./configure   --with-apxs2=/usr/local/apache2/bin/apxs
这里完成的操作
  ====================================
/usr/local/apache2/bin/apachectl -l 只查看静态的内核模块
core.c
http_core.c
mod_so.c
prefork.c   这个是默认的mpm模式,有三种模式,常用的有prefork,worker,event 简单的区别是prefork使用的是      子进程S给我们的客户端提供服务。而worker是由进程和线程来提供服务,进程和线程的区别,进程是互相独立的,两个或者多个进程相互不受影响,线程直接是互相共享进程的资源的。prefork使用的内存多一点,worker少一点,worker支持的并发多一点,event是worker的升级版,支持的并发还要多一点,和worker差不多

(上面是apaceh默认编译的公共模式,2.0 2.2 默认的是prefork模式,2.4默认是event)
  
他的模式可以改
httpd-2.2.16]# ./configure --help |grep mpm
--with-mpm=MPM          Choose the process model for Apache to use.
                        MPM={beos|event|worker|prefork|mpmt_os2}
  ===================================================
/usr/local/apache2/bin/apachectl -t改了配置文件后,检测语法也没有错误,然后再重启=============
  
vim /usr/local/apache2/conf/httpd.conf
找到
<Directory />
将里面的Deny改为Allow 要不然访问不了
Allow from all
  </Directory>
  将这里打开
DocumentRoot "/usr/local/apache2/htdocs"
  找到:
#ServerName www.example.com:80
打开
ServerName localhost:80
  找到:
AddType application/x-gzip .gz .tgz
在该行下面添加:
AddType application/x-httpd-php .php
  
找到:
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
  将该行改为:
<IfModule dir_module>
    DirectoryIndex index.html index.php   显示默认的主页
</IfModule>
  
  
/usr/local/apache2/bin/apachectl -t检测一下
  
/usr/local/apache2/bin/apachectl restart   重启apache================
  /usr/local/apache2/bin/apachectl graceful 加载配置文件,这个也可以
  
  5. 测试解析php
直接访问 192.168.11.190
vim /usr/local/apache2/htdocs/1.php    这个路径是放php文件的地方============
写入:
  <?php
    echo "hello world!";
?>
  保存后,继续测试:
192.168.11.190/1.php
  或者 curl -x192.168.3.129:80 lshfoids.com/1.php 或者index.html
  <?php
   
phpinfo(); 看php的配置文件
?>
  
加载一下他的配置文件
ls /usr/local/php/etc
cd /usr/local/src/php-5.3.28
ls
php.ini-production复制这个文件
  cp php.ini-production /usr/local/php/etc/php.ini
  /usr/local/apache2/bin/apachectl restart 重启一下,然后就可以显示出来了
  ================
  有时候没有web页面,怎么通过命令行去检验和测试php
cd /usr/loacl/php/
/usr/local/php/bin/php -m   可以列出他所有加载的模块
  其实apache用的是这个文件 /usr/local/apache2/modules/libphp5.so = /usr/local/php/bin/php
libphp5.so是apache调用的模块,/bin/php是一个执行文件,其实他们是一个东西,能实现一样的功能
  
/usr/local/php/bin/php -i |less相当于phpinfo()和他看到的一样,
如果进入到bin下,直接 ./bin/php -i |less
  搜索php的配置文件
/usr/local/php/bin/php -i |grep -i 'Configuration File'查一下他的路径
如果有提示,就改一下他的时间就可以了
vim /usr/local/php/etc/php.ini
date.timezone = 'Asia/Chongqing'
  
/usr/local/php/etc/php.iniphp的配置文件=========
  
  /usr/local/php/bin/php -v 看他的版本
  
查看./configure 的时候都加了什么选项 查看php的
./bin/php -i |head
  
查看apache编译过的选项
cat /usr/local/apache2/build/config.nice
  mysql编译参数:
# cat /usr/local/mysql/bin/mysqlbug|grep configure
  
ldd 是查询这个文件都依赖于哪些库
ldd /usr/local/apache2/modules/libphp5.so
  
==============查看nginx,apache,php,mysql的编译参数
  nginx编译参数:
#/usr/local/nginx/sbin/nginx -V
2、apache编译参数:
# cat /usr/local/apache/build/config.nice
3、php编译参数:
# /usr/local/php/bin/php -i |grep configure
4、mysql编译参数:
# cat /usr/local/mysql/bin/mysqlbug|grep configure
页: [1]
查看完整版本: LAMP第一部分安装mysql