5、安装PHP
wget
tar
zxvf php-5.6.30.
tar
.gz
cd
php-5.6.30/
yum
install
libxml2-devel.x86_64 libxml2.x86_64 openssl-devel.x86_64
libcurl-devel.x86_64 libjpeg-turbo.x86_64 libjpeg-turbo-devel.x86_64
png* libpng-devel.x86_64 freetype.x86_64 freetype-devel.x86_64
libxslt-devel.x86_64 libxslt.x86_64 zlib libxml libjpeg freetype libpng gd
curl libiconv zlib-devel libxml2-devellibjpeg-devel freetype-devel
libpng-devel gd-devel curl-devel -y
编译安装libiconv1.14:
==============================================
tar
zxvf libiconv-1.14.
tar
.gz
cd
libiconv-1.14/
.
/configure
--prefix=
/usr/local/libiconv
make
make
install
===============================================
编译安装mhash-0.9.9.9:
=================================================
tar
zxvf mhash-0.9.9.9.
tar
.gz
cd
mhash-0.9.9.9/
.
/configure
make
&&
make
install
================================================
编译安装libmcrypt
==================================================
tar
zxvf libmcrypt-2.5.8.
tar
.gz
cd
libmcrypt-2.5.8/
.
/configure
make
&&
make
install
cp
/usr/local/lib/
*
/usr/local/lib64/
-av
##只正对64位操作系统,32为操作系统直接往下走
ln
-s
/usr/local/lib64/libmcrypt
.la
/usr/lib64/libmcrypt
.la
ln
-s
/usr/local/lib64/libmcrypt
.so
/usr/lib64/libmcrypt
.so
ln
-s
/usr/local/lib64/libmcrypt
.so.4
/usr/lib64/libmcrypt
.so.4
ln
-s
/usr/local/lib64/libmcrypt
.so.4.4.8
/usr/lib64/libmcrypt
.so.4.4.8
ln
-s
/usr/local/lib64/libmhash
.a
/usr/lib64/libmhash
.a
ln
-s
/usr/local/lib64/libmhash
.la
/usr/lib64/libmhash
.la
ln
-s
/usr/local/lib64/libmhash
.so
/usr/lib64/libmhash
.so
ln
-s
/usr/local/lib64/libmhash
.so.2
/usr/lib64/libmhash
.so.2
ln
-s
/usr/local/lib64/libmhash
.so.2.0.1
/usr/lib64/libmhash
.so.2.0.1
ln
-s
/usr/local/bin/libmcrypt-config
/usr/bin/libmcrypt-config
##提示我搭好的环境中我并没有在/usr/local/lib64/下找到文件,文件都在/usr/local/lib,
可以把
/usr/local/lib/
下的文件复制到
/usr/local/lib64/
下
=================================================
yum
install
libxslt* -y
##安装libxslt*
编译安装mcrypt-2.6.8:
================================================
tar
zxvf mcrypt-2.6.8.
tar
.gz
cd
mcrypt-2.6.8/
.
/configure
LD_LIBRAPY_PATH=
/usr/local/lib
##原因未知,这个我是百度搜出来的
make
&&
make
install
================================================
=================================================
vim 1.txt
.
/configure
\
--prefix=
/application/php5
.6.30 \
--with-mysql=
/application/mysql
\
--
enable
-mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-
dir
=
/usr/local/libiconv
\
--with-freetype-
dir
\
--with-jpeg-
dir
\
--with-png-
dir
\
--with-zlib \
--with-libxml-
dir
=
/usr
\
--
enable
-xml \
--disable-rpath \
--
enable
-safe-mode \
--
enable
-bcmath \
--
enable
-shmop \
--
enable
-sysvsem \
--
enable
-inline-optimization \
--with-curl \
--with-curlwrappers \
--
enable
-mbregex \
--
enable
-fpm \
--
enable
-mbstring \
--with-mcrypt \
--with-gd \
--
enable
-gd-native-ttf \
--with-openssl \
--with-mhash \
--
enable
-pcntl \
--
enable
-sockets \
--with-xmlrpc \
--
enable
-zip \
--
enable
-soap \
--
enable
-short-tags \
--
enable
-zend-multibyte \
--
enable
-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--
enable
-
ftp
\
--
enable
-embedded-mysqli \
--with-mysqli \
--with-pdo-mysql=
/application/mysql
cat
1.txt |
bash
echo
$?
make
echo
$?
make
install
echo
$?
ln
-s
/application/php5
.6.30/
/application/php
cp
php.ini-production
/application/php/lib/php
.ini
##提醒:如果是做开发的话就把php.ini-development复制过去
由于nginx调用PHP是通过一个fcgi的程序,所以,这个程序也是有配置文件的。
cd
/application/php/etc/
cp
php-fpm.conf.default php-fpm.conf
egrep
-
v
"^$|;"
php-fpm.conf
------------------------------------------------------------------------
[global]
pid =
/app/logs/php-fpm
.pid
error_log =
/app/logs/php-fpm
.log
log_level = error
rlimit_files = 32768
events.mechanism = epoll
[www]
user = nginx
group = nginx
listen = 127.0.0.1:9000
listen.owner = nginx
listen.group = nginx
pm = dynamic
pm.max_children = 1024
pm.start_servers = 16
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 2048
slowlog =
/app/logs/
$pool.log.slow
request_slowlog_timeout = 10
--------------------------------------------------------------------------
..
/sbin/php-fpm
-t
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
错误:ERROR: Unable to create or
open
slowlog(
/applog/logs/www
.log.slow): No such
file
or directory (2)
解决:
mkdir
/applog/logs/
-p
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
..
/sbin/php-fpm
lsof
-i :9000
================================================
我编译PHP遇到的错误:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
错误:configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no
解决:
ln -s /application/mysql/lib/libmysqlclient.so /usr/lib64/
ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题:checking whether to enable embeddedMySQLi support... yes
checking for mysql_set_server_optionin -lmysqlclient... no
configure: error: wrong mysql libraryversion or lib not found. Check config.log for more information.
解决:--with-mysqli后面不加路径
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题:Don't know how to define struct flockon this system, set --enable-opcache=no
解决:
以下红色路径看具体mysql安装路径而定
32位系统:
ln -s /usr/local/MySQL/lib/libmysqlclient.so /usr/lib/
ln -s /usr/local/mysql/lib/libmysqlclient.so.18/usr/lib/libmysqlclient.so.18
64位系统:
ln -s /usr/local/MySQL/lib/libmysqlclient.so /usr/lib64/libmysqlclient.so
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题:configure: error: Please reinstallreadline - I cannot find readline.h
解决:yum install readline-devel.x86_64 -y
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
问题:make: *** [sapi/cli/php] Error 1
解决:
网上统一的解决方式: makeZEND_EXTRA_LIBS='-liconv'
ln -s /usr/local/lib/libiconv.so.2/usr/lib64/
我自己的解决方式:重新编译安装libiconv(注意编译的的参数--with-iconv-dir的路径)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
=================测试LNMP环境==========================
cd /application/nginx/
--------------------------------------------------
vim html/blog/index.php
<?php
phpinfo();
?>
--------------------------------------------------
vim conf/extra/blog.conf
server {
listen 80;
server_name www.blog.linuxidc.com;
access_log logs/blog.access.log main;
location / {
root html/blog;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
include fastcgi.conf;
}
}
-----------------------------------------------------------------------------
./sbin/nginx -t
./sbin/nginx -s reload
curl www.blog.linuxidc.com
错误集:
- 如果使用curl 访问时出现502 错误,网上一大堆解决方法,就是没有说道防火墙的。所以PHP服务是自己占用一个端口的,所以需要我们手动开启。iptables -I INPUT -p tcp --dport 9000 -j ACCEPT
- 错误404和403一般是站点目录和配置文件有错误,或者服务器没起来等问题。
隐藏PHP版本:
vim /application/php/lib/php.ini
expose_php = On
搭建一个自己的开源网站:
opensns、phpcms、wiki等。
步骤:
- 下载开源软件包
- #如http://kaiyuan.linuxidc.com/
- 创建数据库
- #create database wiki;
- 创建数据库中的用户用于管理这个网站的数据
- #grant all on wiki.* towiki@’localhost’ identified by ‘wiki’;
- #flush privileges;
- #quit
- 解压开源网站到指定的站点目录
- #修改权限chown -Rnginx:nginx 目录
- 用浏览器访问
- 安装站点
总结:
LNMP搭建对于新手来说是比较困难但是要细心,前后要有呼应,理解。
遇到困难先看错误,别急着百度,因为搜出来的大部分都是复制粘贴的。
记录下来每次的错误方便下次解决。
遇到困难,做了好久的,先放松放松,去散步什么的回来说不定就会了。
二进制的mysql不推荐新手完,因为他只是预设了一些参数。
网上搜了很多,终于知道测试PHP和mysql连同的代码了:
<?php
//$link_id=mysql_connect('主机名','用户','密码');
$link_id=mysql_connect('localhost','root','RedHat')or mysql_error();
if($link_id){
echo"mysql successful";
}else{
echomysql_error();
}
?>
##以上可能有错误,但是还请原谅因为我也是新手,刚刚开始学习linux,请多多指教。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142880.htm
