Ubuntu 环境安装 lnmp python

  1.  
sudo apt-get install gcc g++ cmake pkg-config
  1. python
    http://www.cnblogs.com/freeweb/p/5794447.html
  • python-dev
    sudo apt-get install python-dev
  • python-setuptools
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build
python setup.py install
  • numpy
开始安装NumPy模块,官网下载地址为:http://www.scipy.org/scipylib/download.html
进入SourceForge下载,地址为https://sourceforge.net/projects/numpy/files/NumPy/
 直接点击Download即可下载,下载成功之后上传到Linux服务器,安装过程很简单,解压后直接安装即可(之前要确保python-devel已经安装)

unzip numpy-1.11.1.zip
cd numpy-1.11.1/
python setup.py install
unzip opencv-2.4.13.zip
cd opencv-2.4.13/
cmake -D WITH_GTK_2_X=ON -D CMAKE_INSTALL_PREFIX=/usr/local .
make    # make -j4表示开4个线程来进行编译
sudo make install

编译完成之后OpenCV就安装到了指定的/usr/local下面的一些目录中,库文件就安装到了/usr/local/lib下,Python的模块安装位置是:/usr/local/lib/python2.7/site-packages,执行 
ls /usr/local/lib/python2.7/site-packages/
可以看到两个文件,一个是cv2.so一个是cv.py
这两个文件在刚才opencv-2.4.13编译的目录下面lib/下也存在着两个python模块文件,但是不幸的是现在并不能直接使用,原因是我们操作系统python依赖包的位置是/usr/lib/python2.7下,所以刚才如果编译到/usr下是直接可以用的,不过这个也不重要,只要我们将这两个文件复制到正确的目录下,那么就能正常使用OpenCV的功能了,执行: 
cp /usr/local/lib/python2.7/site-packages/cv* /usr/lib/python2.7/site-packages/
复制过去之后进入python交互式界面执行 import cv2 没有报错则安装成功
sudo apt-get install libxml2 libncurses5-dev bison
sudo apt-get install openssl libssl-dev
sudo apt-get -y install build-essential libc6 libpcre3 libpcre3-dev libssl-dev zlib1g zlib1g-dev lsb-base
sudo apt-get -y libaio-dev libxml2-dev pkg-config openssl curl-dev php7.0-curl / php-curl (最后手动编译安装curl解决) jpeg8-dev libpng12-dev libfreetype6-dev libmcrypt-dev
sudo apt-get -y libaio-dev libxml2-dev pkg-config openssl libpng12-dev libfreetype6-dev libmcrypt-dev
curl-dev php-curl jpeg8-dev 找不到
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

centos:
yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel cmake
 
  • nginx
./configure --user=kedi --group=kedi --prefix=/home/kedi/nginx
make
sudo make install
下方可考虑
执行:

/usr/sbin/groupadd -f www
/usr/sbin/useradd -g www www

nginx命令在/www/nginx/sbin/下,拷贝到/etc/init.d/一份,接下来设置开机启动。

chmod 755 /etc/init.d/nginx

chkconfig --add nginx

chkconfig nginx on

然后

cd /etc/rc.d/init.d/ 目录下新建nginx,内容如下:

#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
# It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/www/nginx/sbin/nginx
nginx_config=/www/nginx/conf/nginx.conf
nginx_pid=/www/nginx/logs/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
echo "nginx already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /www/nginx/logs/nginx.pid
}
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL


注意:如果nginx的安装路径不是在/www/nginx下,则适当修改就好。

chmod 775 /etc/rc.d/init.d/nginx #赋予执行权限
chkconfig nginx on #设置开机启动
/etc/rc.d/init.d/nginx restart
service nginx restart至此nginx安装就ok了,但遗留两个问题:
1,是更改默认web根目录在/www/web的问题 

2,是与php的整合,默认nginx是不认php得

对于1,nginx默认web根目录在 nginx安装路径下的html文件夹,我们把他改到/www/web目录下。

进到/www/nginx/conf目录下,vim nginx.conf,将

       location / {
            root   html;
            index  index.php index.html index.htm;
        }
修改为:
        location / {

            root   /www/web;

            index  index.html index.php;

        }

注意,增加了对index.php的识别。
将

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
修改为:
        location ~ \.php$ {

            root           /www/web;

            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;

       }

然后就ok了。
第二个问题跟php的整合,待安装完毕php后再整。
groupadd mysql
useradd -g mysql -d /home/mysql mysql
将对应的boost tar 过后添加
-DWITH_BOOST=/usr/local/boost 即可
cmake \
-DCMAKE_INSTALL_PREFIX=/home/kedi/mysql \
-DMYSQL_DATADIR=/home/kedi/mysql/data \
-DSYSCONFDIR=/home/kedi/mysql/config \
-DDEFAULT_CHARSET=utf8 \
-DMYSQL_UNIX_ADDR=/home/kedi/mysql/var/lib/mysql.sock \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DWITH_BOOST=/home/kedi/boost_1_59_0
常用参数:
CMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
DEFAULT_CHARSET:指定服务器默认字符集,默认latin1
DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci
ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
WITH_COMMENT:指定编译备注信息
WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
SYSCONFDIR:初始化参数文件目录
MYSQL_DATADIR:数据文件目录
MYSQL_TCP_PORT:服务端口号,默认3306
MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.so

make -j 8
make install
出错后重新运行配置,需要删除CMakeCache.txt文件
make clean 
rm -f CMakeCache.txt
出现以下错误:
c++: Internal error: Killed (program cc1plus)
Please submit a full bug report.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2
大概率为内从不够,设置交换分区来用下
# dd if=/dev/zero of=/swapfile bs=1k count=2048000 --获取要增加的2G的SWAP文件块
mkswap /swapfile     -- 创建SWAP文件
swapon /swapfile     -- 激活SWAP文件
swapon -s            -- 查看SWAP信息是否正确
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab     -- 添加到fstab文件中让系统引导时自动启动
注意, swapfile文件的路径在/var/下 
编译完后, 如果不想要交换分区了, 可以删除:
swapoff /swapfile
rm -fr /swapfile
修改所属组合用户
cd /home/kedi/mysql
chown -R kedi .
chgrp -R kedi .
初始化
sudo bin/mysqld --basedir=/home/kedi/mysql --datadir=/home/kedi/mysql/data --initialize-insecure
打开
cd support-files
修改 mysql.serve中以下内容:
basedir=/home/kedi/mysql
datadir=/home/kedi/mysql/data
准备配置文件:
mkdir config
vim my.cnf
[mysqld]
port = 3306
basedir=/home/kedi/mysql
datadir=/home/kedi/mysql/data
user=kedi
symbolic-links=0
default-storage-engine=INNODB
character-set-filesystem=utf8
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake
transaction_isolation = READ-COMMITTED
server-id=0
pid-file = /home/kedi/mysql/config/mysql.pid
socket = /home/kedi/mysql/config/mysql.sock
log_bin = mysql-bin
server_id = 2
relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 1
[client]
default-character-set = utf8
port = 3306
socket = /home/kedi/mysql/config/mysql.sock
[mysqld_safe]
log-error = /home/kedi/mysql/log/mysql-error.log
pid-file = /home/kedi/mysql/config/mysql.pid
log_slave_updates = 1
log-bin = /home/kedi/mysql/log/mysql-bin

启动mysql 
mkdir log
cd support-files
./mysql.serve start
修改root密码为Aa123456
/home/kedi/mysql/bin/mysqladmin -uroot -p password 'Aa123456'
登录mysql:
/home/kedi/mysql/bin/mysql -uroot -p
对访问进行授权:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified by '' REQUIRE NONE;
flush privileges;
  • php
sudo apt-get install libjpeg62-dev

./configure --prefix=/home/kedi/php --with-config-file-path=/home/kedi/php/etc --enable-fpm --with-fpm-user=kedi --with-fpm-group=kedi --with-openssl --with-libxml-dir --with-zlib --enable-mbstring --with-mysql=/home/kedi/mysql --with-mysqli=/home/kedi/mysql/bin/mysql_config --enable-mysqlnd --with-pdo-mysql=/home/kedi/mysql --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir  --with-freetype-dir --with-curl
make test

make && make install

1,整合nginx,启动php

进到cd /home/kedi/php/etc/ 目录下,拷贝php-fpm.conf.default 为php-fpm.conf。执行/home/kedi/php/sbin/php-fpm start 启动php-fpm。

2,配置php.ini 

将安装源码里的/home/kedi/php-5.6.14/php.ini-production 拷贝到php的安装目录的etc文件夹下为 php.ini。

http://www.phpmyadmin.net/
下载 zip包
 下载下来上传到服务器上,然后执行下面命令解压:

tar -xvzf phpMyAdmin-4.5.5.1-all-languages.tar.gz
  解压完成之后,我们放到一个可被web访问到的目录下,后续方便管理,比如/home/wwwroot

mv phpMyAdmin-4.5.5.1-all-languages /home/kedi/www/
  然后执行 cd /home/kedi/www/ 然后将phpmyadmin目录重命名,尽量不让别人猜出来入口,比如:
mv phpMyAdmin-4.5.5.1-all-languages phpmyAdmina4689f
  然后执行 cd phpmyAdmina4689f 进入安装目录,最新版本的phpmyadmin支持快速配置,不用执行安装脚本,官方有快速安装中文文档:http://docs.phpmyadmin.net/zh_CN/latest/setup.html#quick-install
  这时候可以看到目录下有一个配置文件:config.sample.inc.php
  将这个文件拷贝一份:
cp config.sample.inc.php config.inc.php
  然后执行编辑:
vim config.inc.php
  找到$cfg['blowfish_secret']配置项,后面默认为空,这里我们可以随便设置一个复杂的字符串,用来加密使用:
  然后$cfg['Servers'][$i]['auth_type']这一项默认为cookie,表示每次都要登录,我们不用修改,这样比较安全,然后$cfg['Servers'][$i]['host'] = '127.0.0.1';这里建议设置成IP地址,则无论是本地还是远程只要mysql授权都没有问题,默认localhost可能会出现#2002 - Permission denied — The server is not responding 这样的错误,一定要注意,建议使用IP地址
  如果本地调试的话,那么这里要设置成config,然后在这里填上用户名和密码,每次就自动进入了,调试比较方便

  总体就是设置上面的登录认证类型和IP地址共两项,设置完成保存并退出,然后通过web访问我们phpmyadmin的目录地址即可,比如放到了www.xxxx.com下,那么这个时候我们需要访问:http://www.xxxx.com/phpmyAdmina4689f,注意Linux服务器严格区分大小写,这个时候看到登录界面,phpmyadmin就配置好了
  • ubuntu 翻墙
系统环境:Ubuntu 14.04 LTS

安装

Linux不同的发行版执行的命令如下:

Debian / Ubuntu:
apt-get install python-pip
pip install shadowsocks
 
CentOS:
yum install python-setuptools && easy_install pip
pip install shadowsocks

配置

sudo vim /etc/shadowsocks.json
//这里的json文件是自己创建的,不是系统自带

配置文件的内容大致如下:

{
    "server":"服务器的ip",
    "server_port":19175,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"密码",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":false
}

启动ss客户端
http://www.linuxidc.com/Linux/2015-09/123579.htm
前两步很简单,可是有人就纳闷了安装好了不知道怎么用,其实可以用sslocal -help 来查看帮助就知道了

sslocal -c /etc/shadowsocks.json
写个脚本

我们可以在比如/home/kedi下新建个文件叫做shadow.sh,在里面写上我们启动ss客户端需要的命令,然后保存即可。

#!/bin/bash
#shadow.sh
sslocal -c /etc/shadowsocks.json

看可不可以我们到终端执行命令 sh /home/shadow.sh,如果成功的话会有信息输出的。你也可以到浏览器去试试。这个时候你虽然输入的少了,可是关了终端还是会掉的,我们可以让他在后台运行,
nohup sh /home/shadow.sh &。

加入开机运行

这里我们需要在/etc下编辑一个叫rc,local的文件,需要root权限,在终端先su获取root权限,如果你有root帐号的话,然后vim /etc/rc.local编辑,在exit之前输入nohup bash /home/shadow.sh>/home/d.txt & 保存。

启动服务过后去虚拟机中 设置》网络》代理》手动
改为 socks 127.0.0.1 1080 
则是全局模式

pac模式
这里用到genpac,这是基于gfwlist的代理自动配置(Proxy Auto-config)文件生成工具,支持自定义规则。https://github.com/JinnLynn/genpac
sudo pip install genpac
mkdir /home/kedi/vpnPAC
cd /home/kedi/vpnPAC

sudo genpac --proxy="SOCKS5 127.0.0.1:1080" --gfwlist-proxy="SOCKS5 127.0.0.1:1080" --output="autoproxy.pac" --gfwlist-url="https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt" --user-rule-from="user-rules.txt"
注意:
报错后面的错误时,fetch gfwlist fail. online: https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt local: None
可以使用后面的语句
sudo genpac --proxy="SOCKS5 127.0.0.1:1080" -o autoproxy.pac --gfwlist-url="https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt"

将代理应用到整个系统
系统设置 --> 网络 --> 网络代理 
“方法”选择“自动”
“配置URL”填写“file:///home/kedi/vpnPAC/autoproxy.pac”
点击“应用到整个系统”


猜你喜欢

转载自blog.csdn.net/sinat_29963957/article/details/81256173