linux 手动源码安装lnmp(亲测)

 

linux 手动源码安装lnmp笔记(亲测)<pre>先安装这2个yum install gccyum install g++</pre>
<pre>
先在linux 安装libiconv 源码编译安装PHP有用
#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz#tar xvf libiconv-1.14.tar.gz#cd libiconv-1.14# ./configure --prefix=/usr/local/libiconv# make# make install</pre>

<pre>1 先去PHP官网下个 php-5.6.29.tar.gz  wget http://cn2.php.net/distributions/php-5.6.29.tar.gz2 ./configure --prefix=/usr/local/php   --with-iconv=/usr/local/libiconv  --enable-sysvsem --with-curl --enable-mbregex  --enable-mbstring --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-xmlrpc --with-zlib --enable-fpm --with-config-file-path=/usr/local/php/etc 
 --with-iconv=/usr/local/libiconv 这个路径就是上面libiconv安装的路径哈--with-mcrypt没指定路径就 就是说明PHP编译的时候回安装 指定的就直接用指定的

3 make 生成o文件 如果出现  undefined reference to `libiconv' 那就是 ./configure --prefix没设置好 make clean 后重新配置./configure ............
4 make install  安装

输入 php -v[root@iZbp11xke8lva3xk8b3qtnZ ~]# php -vPHP 5.6.29 (cli) (built: Jan  5 2017 10:37:51) Copyright (c) 1997-2016 The PHP GroupZend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
还要把php.ini放进去
先该下php.ini配置设置下默认市区date.timezone = "Asia/Shanghai"
cp /home/php-5.6.29/php.ini-production /usr/local/php/etc/php.ini
下面配置php-fpm<pre>进入/usr/local/php/etc目录cp php-fpm.conf.default php-fpm.conf</pre>
然后运行php-fpm -t 有没有报错 没有报错就行了
php-fpm直接启动就行netstat -ntlp查看端口 是否启动




</pre>
源码安装mysql<pre>(1)先安装cmake(mysql5.5以后是通过cmake来编译的)[root@ rhel5 local]#tar -zxv -f cmake-2.8.4.tar.gz[root@ rhel5 local]#cd cmake-2.8.4[root@ rhel5 cmake-2.8.4]#./configure[root@ rhel5 cmake-2.8.4]#make[root@ rhel5 cmake-2.8.4]#make install
/usr/local/bin/cmake  --version 测试有没有安装成功


(2)创建mysql的安装目录及数据库存放目录[root@ rhel5~]#mkdir -p /usr/local/mysql                 //安装mysql [root@ rhel5~]#mkdir -p /usr/local/mysql/data            //存放数据库
(3)创建mysql用户及用户组[root@ rhel5~]groupadd mysql[root@ rhel5~]useradd -r -g mysql mysql
(4)安装mysql# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.34.tar.gz#tar zxvf mysql-boost-5.7.17.tar.gz#cd mysql-5.6.34#/usr/local/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1[root@ rhel5 mysql-5.5.10]#make [root@ rhel5 mysql-5.5.10]#make install

设置目录权限# cd /usr/local/mysql# chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql# chown -R mysql:mysql datacp support-files/my-medium.cnf /etc/my.cnf //将mysql的启动服务添加到系统服务中
修改下my.cnf配置文件 添加如下 1个是mysql命令连接 1个是客户端的链接 因为都是socket连接mysql所以指定下socket路径<pre>[mysqld]socket=/tmp/mysql.sock[client]socket=/tmp/mysql.sock</pre>


创建系统数据库的表# cd /usr/local/mysql# scripts/mysql_install_db --user=mysql

# cd /usr/local/mysql
# ./bin/mysqld_safe --user=mysql &   //启动MySQL,但不能停止
启动日志写在此文件下:/usr/local/mysql/data/localhost.err

设置环境变量[root@ rhel5~]# vi /root/.bash_profile
在PATH=$PATH:$HOME/bin添加参数为:
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
#source /root/.bash_profile

关闭MySQL服务# mysqladmin -u root -p root//这里MySQL的root用户还没有配置密码,所以为空值。需要输入密码时,直接点回车键即可。

[root@ rhel5 mysql]# cp support-files/mysql.server  /etc/init.d/mysql //将mysql的启动服务添加到系统服务中可以使用如下命令# service mysql start  # service mysql stop# service mysql restart
修改MySQL的root用户的密码以及打开远程连接# mysql -u root mysql
mysql>use mysql;mysql>desc user;mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";  //为root添加远程连接的能力。mysql>update user set Password = password('xxxxxx') where User='root';mysql>select Host,User,Password  from user where User='root'; mysql>flush privileges;mysql>exit
重新登录:mysql -u root -p
若还不能进行远程连接,则关闭防火墙[root@ rhel5~]# /etc/rc.d/init.d/iptables stop
</pre>
下面安装nginx 安装下面软件只要安装目录没有文件就行先安装openssl软件<pre>wget http://down1.chinaunix.net/distfiles/openssl-1.0.0c.tar.gztar zxvf openssl-1.0.0c.tar.gzcd openssl-1.0.0c
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/confmake && make install#检验安装/usr/local/openssl/bin/openssl version -a </pre>
再安装安装pcre软件<pre>wget https://ncu.dl.sourceforge.net/project/pcre/pcre2/10.22/pcre2-10.22.tar.gztar zxvf pcre2-10.22.tar.gzcd pcre2-10.22./configure --prefix=/usr/local/pcre/make & make install</pre>
再安装安装zlib软件<pre>wget http://jaist.dl.sourceforge.net/project/libpng/zlib/1.2.10/zlib-1.2.10.tar.gztar zxvf zlib-1.2.10.tar.gzcd zlib-1.2.10./configure --prefix=/usr/local/zlib/make && make install</pre>



接下来安装nginx<pre>#添加www用户和组groupadd wwwuseradd -g www www

#创建网站根目录mkdir -p     /var/www/root/chmod -R 775 /var/www/root/
#下载wget http://nginx.org/download/nginx-1.10.2.tar.gz#解压tar zxvf nginx-1.10.2.tar.gz#进入安装目录cd nginx-1.10.2
mkdir -p /home/pcre2-10.22/pcre210/.libscp /usr/local/lib/libpcre.a /home/pcre2-10.22/libpcre.acp //usr/local/lib/libpcre.a /home/pcre2-10.22/libpcre.lacp /usr/local/lib/libpcre.a /home/pcre2-10.22/.libs/libpcre.acp /usr/local/lib/libpcre.a /home/pcre2-10.22/.libs/libpcre.la
#配置(使用openssl、pcre、zlib的源码路径不是安装好的路径 切记!)./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/home/openssl-1.0.0c --with-pcre=/home/pcre2-10.22 --with-zlib=/home/zlib-1.2.10 --with-http_stub_status_module --with-threads

#编译安装 (ps:安装可能pcre会报错  继续看看这个文件/home/pcre2-10.22/.libs/还有没有cp /usr/local/lib/libpcre.a /home/pcre2-10.22/.libs/libpcre.acp /usr/local/lib/libpcre.a /home/pcre2-10.22/.libs/libpcre.la)make && make install
#验证/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.10.2built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) built with OpenSSL 1.0.0c 2 Dec 2010TLS SNI support enabledconfigure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/home/openssl-1.0.0c --with-pcre=/home/pcre2-10.22 --with-zlib=/home/zlib-1.2.10 --with-http_stub_status_module --with-threads

修改配置文件
vi /usr/local/nginx/conf/nginx.conf
改默认跟目录和  默认首页location / {            root   /home/www;            index  index.php index.html index.htm;        }



将其中的
        location / {            root   html;            index  index.php index.html index.htm;        }改为
        location / {            root   /home/www;            index  index.php index.html index.htm;        }
这个也要改成 访问PHP 让php-fpm端口处理 $document_root 代表当前请求在root指令中指定的值   location ~ \.php$ {            root           /home/www;            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;            include        fastcgi_params;        }
 charset utf-8; 要改成utf-8然后重启nginx
切记/home/www这个目录一定要设置访问权限!!!! 
启动、重启
#启动:/usr/local/nginx/sbin/nginx 
#重启/usr/local/nginx/sbin/nginx -s reload停止
kill -9 nginx进程号
测试#测试端口 netstat -ntlp //看看80端口有没有运行#浏览器中测试  http://ip:80
ps:原理 nginx80端口接收到文件 会发到php-fpm端口 让他来解析处理PHP 并不是nginx端口解析处理php的

</pre>
看phpinfo Loaded Configuration File 如果none那就执行 给他执行加载的php.ini<pre>/usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf -c /usr/local/php/etc/php.ini</pre>




然后看没有mysql和mysqli扩展模块 那就直接进入php源码包ext里面  安装扩展 这样才能使用php函数链接mysqlps:装mysql前先yum -y install mysql-devel

接下来安装phpmyadminwget https://files.phpmyadmin.net/phpMyAdmin/3.5.8.2/phpMyAdmin-3.5.8.2-all-languages.zipunzip phpMyAdmin-3.5.8.2-all-languages.zipcd phpMyAdmin-3.5.8.2-all-languages

posted @ 2019-11-16 17:36  newmiracle宇宙  阅读(354)  评论(0编辑  收藏  举报