lnmp环境

一.nginx的编译。

   1. 到官网 找到自己想要的nginx版本

    wget http://nginx.org/download/nginx-1.7.8.tar.gz 然后解压 tar zxvf nginx-1.7.8.tar.gz cd到解压后的nginx, 编译nginx前需要下载pcre库和zlib库,编辑./configure --prefix=/usr/local/nginx 编译过程中可能会遇到重写模块会需要PCRE库

     cd 到下载nginx的目录。wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.bz2  他是bz2结尾的  解压用 tar jxvf pcre-8.37.tar.bz2。(nginx编译中还会需要zlib这个库,我们可以直接用yum安装  yum install zlib)<这里用yum安装这个库,安装过程中,linux提示已经是安装了的。不能安装。我们用yum安装一些库或软件的时候,可能会遇到这个问题。还需要安装对应库的开发包 yum install zlib-devel(某个软件-devel)>

     解压后重新编译nginx   cd到解压后的nginx的目录里  ./configure --prefix=/usr/local/nginx/ \

    --with-pcre=/usr/local/src/pcre-8.37(安装的时候带上pcre库的具体地址)

    2.make && makeinstall  自动安装

    3.cd nginx目录 ./sbin/nginx 启动nginx服务 (./sbin/nginx -s reload 重启nginx)访问服务器的ip查看nginx是否启动成功, (netstat -antlp |grep 80:查看当前80端口是谁在使用)



        服务器中如果Apache  nginx都有,Apache会把nginx所需要的80端口占用。可用 ps aux命令查看进程 然后pkill -9 httpd (这了的数字-9是无论如何都杀死进程)有时nginx服务开启失败也会有防火墙的原因

        service iptables stop/start/restart

        pkill 杀死某个正在运行的进程

配置conf,指向项目路径:

server {

      listen 80;

      server_name www.pmd.space;

      #access_log  logs/demo.phalconplus.access.log  main;

      index index.php index.html index.htm;

      set $root_path '/data/think';

      root $root_path;

      try_files $uri $uri/ @rewrite;

      location @rewrite {
          rewrite ^/(.*)$ /index.php?_url=/$1 last;
      }

      location ~ \.php {
          fastcgi_pass 127.0.0.1:9000;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      }

      location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
          root $root_path;
      }

      location ~ /\.ht {
          deny all;
      }

   }

新建一个conf文件写入以上内容,include进nginx.conf里面。修改各项配置。运行。





    二.下载php

    wget http://cn2.php.net/distributions/php-5.6.16.tar.gz (这里注意了,我们直接在php官网下载的链接可能是一个跳转脚本链接,在linux下会导致下载的php压缩包打不开)

    编译php之前需要一系列的库文件,yum install libxml2 libxml2-devel bzip2 bzip2-devel gd gd-devel libpng libpng-devel ncurses ncurses-devel libcurl libcurl-devel libmcrypt libmcrypt-devel。

    进入到php目录,

   

./configure \
--prefix=/usr/local/php56 \
--with-config-file-path=/usr/local/php56/etc \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-opcache \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl \
--with-zlib \
--enable-zip \
--with-bz2 \
--with-readline

参数说明

""" 安装路径 """
--prefix=/usr/local/php56 \
""" php.ini 配置文件路径 """
--with-config-file-path=/usr/local/php56/etc \
""" 优化选项 """
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
""" 启用 opcache,默认为 ZendOptimizer+(ZendOpcache) """
--enable-opcache \
""" FPM """
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
""" MySQL """
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
""" 国际化与字符编码支持 """
--with-gettext \
--enable-mbstring \
--with-iconv \
""" 加密扩展 """
--with-mcrypt \
--with-mhash \
--with-openssl \
""" 数学扩展 """
--enable-bcmath \
""" Web 服务,soap 依赖 libxml """
--enable-soap \
--with-libxml-dir \
""" 进程,信号及内存 """
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
""" socket & curl """
--enable-sockets \
--with-curl \
""" 压缩与归档 """
--with-zlib \
--enable-zip \
--with-bz2 \
""" GNU Readline 命令行快捷键绑定 """
--with-readline

复制配置文件

cp php.ini-development /usr/local/php56/etc/php.ini
cp /usr/local/php56/etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf


(主要说明,安装目录在哪里,需要安装一些什么库)    cd进入到安装好的php目录,把etc下的php-fpm.conf.default 复制一         修改php-fpm.conf,user=nobody,group=nobody。并把php.fpm.conf中的pid=run/php-fpm.conf前面的注释去掉,都修改为www-data,然后新建用户组www-data,用户www-data

          cd 到php解压目录 cp php.ini-production /usr/local/php/lib。

        cd进入到安装目录中的sbin目录,启动php服务

        整合php和nginx,vim nginx/conf/nginx.conf  把匹配.php结尾的代码注释删除掉 ,把nginx收到访问php的地址改为自己php所在地址,更改php文件目录到对应的目录,可以在nginx下的html创建一个index.php 内容: 看是否能输出以及php.ini信息  确定配置是否生效。


        三编译mysql

创建用户:
代码: useradd 选项  用户名 其中各选项含义如下:
代码: -c comment 指定一段注释性描述。 
  
  
    -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    -g 用户组 指定用户所属的用户组。 chown -R mysql:mysql /usr/local/mysql

        msyql5.5之后编译都需要用的到cmake,我们需要先安装, yum -y install cmake ncurses ncurses-devel。

        然后下载mysql,下载mysql的时候,注意版本的选择,一些版本可能会没有Cmakelists.txt文件,会导致编译出错,链接:http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.50.tar.gz

        然后输入命令进行编译,安装目录以及所需的一些配置文件:

        cmake \
        -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
        -DDEFAULT_CHARSET=utf8 \
        -DDEFAULT_COLLATION=utf8_general_ci \
        -DMYSQL_TCP_PORT=3306 \
        -DMYSQL_UNIX_ADDR=/usr/local/mysql/run/mysql.sock \
        -DWITH_INNOBASE_STORAGE_ENGINE=1 \
        -DWITH_SSL=yes

        没报错就 make && make install 。创建用户组和一个用户名 groupadd mysql,useradd mysql 。

        然后改变安装目录下所有文件的用户及组为「mysql] chown -R mysql .  chgrp -R mysql .


        接着初始化数据库并设定安装目录:./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql

        然后将目录的所有文件的所属用户改为「root」,接着将目录「data」的所属用户改为「mysql」

        chown root  .     chown -R mysql data

        把mysql安装目录中的配置文件拷贝一份重命名 cp support-files/my-medium.cnf /etc/my.cnf

        接着启动mysql守护进程:bin/mysqld_safe --user=mysql 。这一步会在mysql目录下产生之前编译设定的run目录文件夹(这一步有可能会出错,我测试的时候[ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2)是因为自己没创建目录导致找不到,新建一个文件之后,把文件归属用户设置为mysql 。如果产生了run目录,而里面没有mysql.sock文件,我们看看run目录的权限,更改为mysql用户mysql组。重新初始化数据库和开启mysql守护进程),初始化数据库后没有mysql.sock文件,改变mysql目录的用户和用户组,重新 初始化数据库


服务端能打开mysql  php不能连接mysql 
打开php.ini  更改以下配置

pdo_mysql .default_socket = /usr /local/ mysql /run/ mysqld .sock
mysql .default_socket = /usr /local/ mysql /run/ mysqld .sock
mysqli .default_socket = /usr /local/ mysql /run/ mysqld .sock

localhost连接数据库使用的sock连接

127.0.0.1用的tcl模式连接数据库


    ./bin/mysqladmin -u root password '123456'为自己的root用户设置密码。
    连接数据库:./bin/mysql -u root -p 

 

  
  
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值