这里主讲centos7 环境建站
- 一、centos7系统安装
- 二、安装Apache
- 三、安装php
- 四、安装Mysql
- 五、安装扩展
- 六、配置与启动
- 七、安装python3
- 八、安装scrapyd
- 九、安装scrapyd-client
- 十、定时任务
- 十一、Crypto 解密
- 报错
- 安装前 检查以下是否已经安装,是否符合自己使用的版本(将xxx换成具体名称)
rpm -qa |grep xxx
- 卸载包
rpm -qa|grep xxx
- 清理
yum remove xxx
一、centos7系统安装
这里不做过多了解,一般购买服务器都会提供系统版本安装的
- 安装gcc、gcc-c++ 等,因为以下安装需要先安装一些依赖包
# 网友提供以来安装
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
# 实际安装时缺少的依赖
yum install gcc gcc-c++
yum install make
yum install wget
yum -y install zlib*
yum install net-tools
yum install sqlite-devel
yum install openssl
yum install openssl-devel
yum install curl
- 使用 passwd root 修改登录密码
二、安装Apache
yum -y install httpd
三、安装php
yum -y install php
安装php-fpm
yum -y install php-fpm
四、安装Mysql
yum -y install mysql
- 查看日志情况
登录mysql 执行:show variables like ‘log_%’;
五、安装扩展
yum -y install mysql-server
yum -y install php-mysql
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
yum install php-pdo
# 有些系统 需要安装mysqli
yum install php-mysqli
六、配置与启动
- 启动Apache
service httpd start
- 启动Mysql
service mysqld start
- 配置Mysql
// 进入mysql
mysql
// 选择db
use mysql
// 修改 root 密码
update user set authentication_string=password('密码') where user='root'
// exit 退出后重新登录
// 回车后 输入密码
mysql -u root -p
// 查看用户表
SELECT `Host`,`User` FROM user;
// 更新用户表 可以远程登录
UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
// 刷新修改
flush privileges;
// exit 退出后重启mysql服务
service mysqld restart
// 相关 命令
show databases; 查看数据库实例
use dataName; 进入数据库实例
show tables; 查看数据库表
desc tableName; 查看数据库表结构
show create table tableName; 查看建表sql语句
- 索引
//添加 唯一索引
alter table table_name add unique (column_list) ;
//删除表m_content中index_name类型索引
DROP INDEX index_name ON m_content
//添加表m_content中index_name类型索引
ALTER TABLE `m_content` ADD INDEX index_name ( `chapter_id`, `imgurl` )
//查看表m_content中所有 索引
SHOW INDEX FROM m_content
- Apache配置
自行检查 各服务安装情况:echo phpinfo();
apache配置文件在:/etc/httpd/conf
apache工作目录在:/var/www/html,工作目录更换后需要配置权限
关闭权限控制器 使用setenforce 0
关闭关闭防火强 service iptables stop
以上重启无效
开启.htaccess及.htaccess的使用方法
将 AllowOverride None 改为 AllowOverride All
mysql 5.5.3以上支持utf8mb4, utf8mb4兼容四字节的unicode和utf8
这里php使用的是 pdo访问数据库
如果不是符合自己使用的版本,百度手动安装
七、安装python3
- 以python3.6为例
// 下载
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
// 解压
tar -zxvf Python-3.6.0.tgz
// 进入
cd Python-3.6.0
// 编译安装到 /usr/local/python3
./configure --prefix=/usr/local/python3
// 安装
make && make install
// 建立python3的软链
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
// 检查Python3及pip3是否正常可用:返回版本表示正常
python3 -V
pip3 -V
- 执行文件在这个目录下 /usr/local/python3/bin
有的网友说要添加到环境变量,我没有添加
八、安装scrapyd
pip3 install scrapyd
- 默认安装在python3/bin下有scrapyd文件
- 创建目录 /etc/scrapyd
- 创建文件 scrapyd.conf
[scrapyd]
eggs_dir = eggs
logs_dir = logs
items_dir =
jobs_to_keep = 5
dbs_dir = dbs
max_proc = 0
max_proc_per_cpu = 4
finished_to_keep = 100
poll_interval = 5.0
bind_address = 127.0.0.1 最好不要开放 外网 不安全 请删除这段中文说明
http_port = 6800
debug = off
runner = scrapyd.runner
application = scrapyd.app.application
launcher = scrapyd.launcher.Launcher
webroot = scrapyd.website.Root
[services]
schedule.json = scrapyd.webservice.Schedule
cancel.json = scrapyd.webservice.Cancel
addversion.json = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json = scrapyd.webservice.ListSpiders
delproject.json = scrapyd.webservice.DeleteProject
delversion.json = scrapyd.webservice.DeleteVersion
listjobs.json = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus
具体含义 自行百度
- 启动
/usr/local/python3/bin/scrapyd
- 检查启动情况
127.0.0.1:6800
- 后台运行
nohup python3 scrapyd 2>&1 &
- 配置
设置爬虫(你的项目)根目录下scrapy.cfg配置文件
编辑项目名称project = projectA (可以默认)
deploy下添加 url = http://127.0.0.1:6800/ (ip地址与scrapyd.conf相同)
如图
九、安装scrapyd-client
pip3 install scrapyd-client
- 将python3/bin下 scrapyd-deploy文件复制到爬虫根目录
- 进入项目进行部署你的爬虫(爬虫有改动需要重新部署)
python3 scrapyd-deploy default -p projectA
- 查看当前主机已经部署的Scrapy项目
curl http://127.0.0.1:6800/listprojects.json
- 执行爬虫
curl http://127.0.0.1:6800/schedule.json -d project=projectA -d spider=爬虫name
- 停止爬虫
curl http://127.0.0.1:6800/cancel.json -d project=spider_demo -d job=097cd29aa6ef11e8ab735254003796ff
- 删除部署
curl http://127.0.0.1:6800/delproject.json -d project=projectA
- 查看job
curl http://127.0.0.1:6800/listjobs.json?project=m_manhuabei
十、定时任务
官网:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html
- 创建、编辑计划任务的命令为 crontab -e
- 查看当前计划任务命令为 crontab -l
- 删除某条计划任务为 crontab -r
- crontab服务操作说明:
启动服务
/sbin/service crond start
关闭服务
/sbin/service crond stop
重启服务
/sbin/service crond restart
重新载入配置
/sbin/service crond reload
例子:
每分钟执行testH.py文件
crontab */1 * * * * /usr/bin/curl python3 testH.py
// 每天凌晨2点30分执行
30 */2 * * * curl http://127.0.0.1:6800/schedule.json -d project=aProject -d spider=bSpider
// 每天12点、0点 执行
0 */12 * * * curl http://127.0.0.1:6800/schedule.json -d project=aProject -d spider=bSpider
// 每天凌晨2点执行
0 2 * * * curl http://127.0.0.1:6800/schedule.json -d project=aProject -d spider=bSpider
日志位置: /var/log/cron
十一、Crypto 解密
安裝Crypto 解密使用
一般安裝完后显示找不见Crypto,找到python\lib\site-packages下的Crypto,把C改为大写C
报错 No module named ‘Crypto.Cipher’”
pip install pycryptodome
- 查看 磁盘使用情况
du -h --max-depth=1 /
排序显示
du -h --max-depth=1 / | sort -n
报错
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/mysql.so’ - libmysqlclient.so.18: cannot open shared object file: No such file or directory in Unknown on line 0
我遇到错误的原因是:项目运行一段时间后 mysql出错重新安装的,运行一段时间后莫名其妙就报错了
我的解决方法是:
- 卸载php 重新安装 没用
- 找到libmysqlclient.so.18 将目录添加到 etc/ld.so.conf 后 执行 ldconfig 刷新 解决
- 重启服务(service httpd resatrt)