分类 默认分类 下的文章

解决Mac OS X 11中的/usr/bin 的“Operation not permitted” 权限问题

更新了 Mac OS X 11后发现,不再能够通过Terminal用命令 cp 复制文件到 /usr/bin 了。
复制文件的时候出现权限问题:

cp: /usr/bin/mvim: Operation not permitted

搜索之后发现,是El Capitan 加入了Rootless机制,不再能够随心所欲的读写很多路径下了。设置 root 权限也不行。

Rootless机制将成为对抗恶意程序的最后防线

于是尝试关闭 Rootless。重启按住 Command+R,进入恢复模式,打开Terminal。

csrutil disable

重启即可。如果要恢复默认,那么

csrutil enable

安装编译nginx1.9.7+php7.0.0服务器环境

nginx的编译安装
1、安装依赖扩展

$ yum -y install gcc gcc-c++ autoconf automake libtool make cmake
$ yum -y install zlib zlib-devel openssl openssl-devel pcre-devel

zlib: 为nginx提供gzip模块,需要zlib库支持
openssl: 为nginx提供ssl功能
pcre: 为支持地址重写rewrite功能

2、创建用来运行nginx的用户及组

$ groupadd nginx
$ useradd -g nginx -M nginx

-g参数为nginx用户指定了一个组。-M参数保证其不自动生成home目录。

但通过上面的用户创建之后,nginx用户可以通过设置一个密码登陆到服务器,这个不是我们想要的,我们禁用它的ssh登陆权限.禁止用户 登陆也很方便,只需要修改配置文件中有关用户和用户组的信息即可。

$ vi /etc/passwd

找到nginx,将后面的 /bin/bash 改为 /sbin/nologin 即可。
OK,用户处理完毕。
3、开始编译安装Nginx
configure配置如下:

$ ./configure --prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/run/nginx.pid \
--user=nginx \
--group=nginx \
--with-pcre \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module

3.1、安装

$ make
$ make install

安装到这里就结束了,但是,安装完可没完事儿,nginx还没有运行起来,你可以先去看看安装的结果,并且运行nginx服务器:

$ cd /usr/local/nginx
$ sbin/nginx

这样就运行起来了,访问你的服务器ip,看看能否看到ngin的欢迎页面吧。(不要让其他软件占用80端口哦)默认情况下网页文件放在/usr/local/nginx/html下,不符合我们的使用习惯,这个需要修改nginx的配置文件来修改,不过即使不修改,我们也是可以正常使用的,我们就不详细解释nginx的配置了。

不过为了使用我们熟悉的service操作,这里提供一个 程序 ,放到/etc/ini.d/目录下,并执行:

$ chmod +x /etc/init.d/nginx 
$ chkconfig --add nginx
$ chkconfig nginx on
$ /usr/local/nginx/sbin/nginx -s reload #重新加载nginx服务
$ /usr/local/nginx/sbin/nginx -s quit  #退出nginx服务

PHP7的编译安装
1、先从官方网站下载php7,并且解压,由于上面这篇文章已经有了相关步骤,就不做过多详解:

$ wget http://am1.php.net/get/php-7.0.0.tar.gz/from/this/mirror
$ tar zvxf php-7.0.0.tar.gz
$ cd php-7.0.0

2、编译前的配置:

$ ./configure --prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7/etc \
--with-config-file-scan-dir=/usr/local/php7/etc/php.d \
--with-mcrypt=/usr/include \
--enable-mysqlnd \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-gd \
--with-iconv \
--with-zlib \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache

3、配置无误后执行:

$ make
$ make install

4、调整php配置

默认安装好之后,你会发现/usr/local/php7/etc下面没有php.ini文件,这个去哪里要呢?在php7的源码安装包都有。可以看到有两个php.ini-xxx文件,我们可以分别vi打开来看下,一个是产品模式,一个是开发模式。

$ cd /usr/src/php-7.0.0/
$ ls
$ cp php.ini-production /usr/local/php7/etc/php.ini
$ vi /usr/local/php7/etc/php.ini

5、启用php-fpm服务

$ cd /usr/local/php7/etc
$ mv php-fpm.conf.default php-fpm.conf
$ mv php-fpm.d/www.conf.defualt php-fpm.d/www.conf

6、搞定php-fpm的服务载入:
就像上面的nginx一样,我们希望使用service php-fpm start|stop|restart这些操作来实现服务的重启,但没有像nginx那么复杂,php编译好之后,给我们提供了一个php-fpm的程序,不需要我再编写分享了。这个文件放在php编译源码目录中:

 $ cd /usr/src/php-7.0.0/sapi/fpm
 $ ls
 $ cp init.d.php-fpm /etc/init.d/php-fpm
 $ chmod +x /etc/init.d/php-fpm
 $ chkconfig --add php-fpm
 $ chkconfig php-fpm on

通过上面这个操作,我们就可以使用 sevice php-fpm start 来启用php-fpm了。用 ps -ef | grep php-fpm 看看进程

7、nginx代理php实现访问:
通过上面的操作,nginx和php-fpm服务都被我们跑起来了,但是php-fpm走的是127.0.0.1:9000,外网是无法访问的,而且我们也不可能直接通过php-fpm给外网提供服务,我们用nginx去代理9000端口执行php。实际上这个过程只需要对nginx进行配置即可,fpm已经在后台运行了,我们需要在nginx的配置文件中增加代理的规则,即可让用户在访问80端口,请求php的时候,交由后端的fpm去执行,并返回结果。

$ vi /usr/local/nginx/conf/nginx.conf
找到以下代码并去掉注释
#location ~ \.php$ {
  #   root           html;
  #  fastcgi_pass   127.0.0.1:9000;
  #  fastcgi_index  index.php;
  #  fastcgi_param  SCRIPT_FILENAME  /script$fastcgi_script_name;
  #  include        fastcgi_params;
#}
修改后的代码
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;
}
重启nginx
service nginx reload

Windows 系统添加代理服务器

1、点击开始菜单,选择”控制面板“
1w.jpg

2、进入控制面板后 选择类别,将图标修改为小图标,方便我们查找某些隐藏的功能
2w.jpg

3、将图标修改为小图标后,我们选择 ”Inetrnet选项“ 配置
3w.jpg

4、进入 ”Inetrnet选项“ 后选择 ”连接“ 选项,点击此模块下的 ”局域网设置“
4w.jpg

5、进入 ”局域网设置“ 设置后将 ”使用自动配置脚本“ 打钩,并且在 ”地址“ 栏里添写 代理服务器URL地址
5w.jpg