• LAMP第一部分安装mysql -apache -php



    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
    mysql test
    生成了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/mysqld start 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.ini php的配置文件=========

     

    /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

  • 相关阅读:
    深入了解JVM-方法区
    Mysql性能调优
    基督教 犹太  新教  东正教 天主教
    caffe的matlab接口一览表
    ubuntu下 编译Caffe的Matlab接口
    Linux入门学习教程:虚拟机体验之KVM篇
    利用proxychains在终端使用socks5代理
    process lasso 优化原理
    解决win7和ubuntu双系统ubuntu不能上网的问题
    调试minix内核
  • 原文地址:https://www.cnblogs.com/chenshoubiao/p/4617397.html
Copyright © 2020-2023  润新知