Архив рубрики: linux

nginx + php + mysql install

link

yum install openssh-server wget
yum -y update
yum repolist
rpm -ihv http://mirror.yandex.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ihv http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum install yum-priorities
vi /etc/yum.repos.d/epel.repo
vi /etc/yum.repos.d/nginx.repo

priority=10

yum install mysql mysql-server
chkconfig --levels 235 mysqld on
/usr/bin/mysql_secure_installation
service mysqld start

yum install nginx 
chkconfig --levels 235 nginx on 
yum remove httpd 
service nginx start

CentOS/RHEL 7.x:

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

CentOS/RHEL 6.x:

rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
yum install php56w php56w-opcache php56w-gd php56w-imap php56w-pdo php56w-mysql php56w-xml php56w-common php56w-process php56w-mbstring php56w-cli php56w-ldap php56w-devel php56w-fpm php56w-mssql php56w-magickwand php56w-mcrypt php56w-odbc php56w-pear php56w-shout php56w-snmp php56w-soap php56w-tidy php56w-xmlrpc

vi /etc/php.ini

files.upload_max_filesize = 100M 
post_max_size = 100M 
cgi.fix_pathinfo = 0 
chkconfig --levels 235 php-fpm on
/etc/init.d/php-fpm start
yum install htop
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.default
vi /etc/nginx/nginx.conf
client_max_body_size 100m;
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

server {
        listen       80;
        server_name  _;

        location / {
            root   /usr/share/nginx/html;
            index  index.php index.html index.htm;
        }

        error_page  404              /404.html;
        location = /404.html {
            root   /usr/share/nginx/html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
        location ~ \.php$ {
            root           /usr/share/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
        }
}

gz

gunzip -d ar.gz

block ip

iptables -A INPUT -s 85.25.71.227 -j REJECT

service iptables save

yandex-disk with webdav

read

Сперва вам потребуется установленный пакет libproxy:

Для CentOS x64:

# yum install libproxy.x86_64

Для CentOS i686

# yum install libproxy.i686

После этого качаем rpm davfs2 и его зависимости:

Для CentOS x64:

# wget http://pkgs.repoforge.org/davfs2/davfs2-1.4.6-1.el6.rf.x86_64.rpm
# wget ftp://rpmfind.net/linux/centos/6.3/os/x86_64/Packages/neon-0.29.3-2.el6.x86_64.rpm 
# wget ftp://rpmfind.net/linux/centos/6.3/os/x86_64/Packages/pakchois-0.4-3.2.el6.x86_64.rpm

Для CentOS i686

# wget http://pkgs.repoforge.org/davfs2/davfs2-1.4.6-1.el6.rf.i686.rpm
# wget ftp://rpmfind.net/linux/centos/6.3/os/x86_64/Packages/neon-0.29.3-2.el6.686.rpm
# wget ftp://rpmfind.net/linux/centos/6.3/os/x86_64/Packages/pakchois-0.4-3.2.el6.686.rpm

Устанавливаем скачанные пакеты:

Для CentOS x64:

# rpm -i davfs2-1.4.6-1.el6.rf.x86_64.rpm neon-0.29.3-2.el6.x86_64.rpm pakchois-0.4-3.2.el6.x86_64.rpm

Для CentOS i686:

# rpm -i davfs2-1.4.6-1.el6.rf.i686.rpm neon-0.29.3-2.el6.i686.rpm pakchois-0.4-3.2.el6.i686.rpm

Создадим точку монтирования:

# mkdir /mnt/yandex.disk

Примонтируем наш диск, введя логин и пароль от нашей почты на Я.ру (use https, Luke!):

# mount -t davfs https://webdav.yandex.ru /mnt/yandex.disk/
Please enter the username to authenticate with server
https://webdav.yandex.ru or hit enter for none.
  Username: lamnya
Please enter the password to authenticate user lamnya with server
https://webdav.yandex.ru or hit enter for none.
  Password: 

Убедимся, что всё в порядке:

# df -h /mnt/yandex.disk/
Filesystem            Size  Used Avail Use% Mounted on
https://webdav.yandex.ru
                      10G  1G   10G   10% /mnt/yandex.disk
Простой скрипт для автоматического монтирования (спасибо uscr viahabrahabr.ru/post/142067/#comment_4752116):

#!/usr/bin/expect
spawn mount.davfs https://webdav.yandex.ru /clouds/yandex.disk/
expect "Username:"
send "USERNAME@yandex.ru\r"
expect "Password:"
send "PASS\r"
expect eof

main git directory

mkdir /git
mkdir /git/project
cd /git/project
git —bare init
#chown -R deploy /git/project
cd /var/www/project
git remote add origin \
deploy@server:/git/project
git push origin master

/var/www/project/.git/config:

[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = /git/project/
[branch "master"]
remote = origin
merge = refs/heads/master

auto clear / free RAM

crontab -e

5 * * * * cd /var/www/html/backup && sh clear_ram.sh

#!/bin/sh

echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches

#!/bin/sh

dd if=/dev/zero of=/swap bs=1M count=1024
mkswap /swap
swapon /swap

#!/bin/sh

ssh root@project.ru «tar zcvf — /var/www/project» | cat > /tmp/project.tar.gz

 

Работа с git. Создание и удаление веток

1) Посмотреть все ветки

  • git branch
  • git branch -r

2) Удалить ветку на сервере

  • git push origin :crincum_poi

3) Удалить ветку локально

  • git branch -D crincum_poi

4) Создать ветку на сервере

  • git push origin master:crincum_poi

5)  Смерджить ветку таска MAP-23 в текущую ветку проекта crincum

  • git checkout master
  • git merge experimental

6) Процесс создания веток под таск

  • git checkout -b MAP-186  — создаем локальную ветку
  • git branch — проверяем, что переключились на текущую ветку
  • git push origin MAP-186:MAP-186 — пушим origin в новую удаленную ветку. Тем самым создаем ее.
  • Проверяем наличие удаленной ветки git branch -r и Работаем:)

7) Ошибка refusing to pull with rebase: your working tree is not up-to-date  .gitignore.: needs update.
Решение жестко сменить HEAD ветки. Правда могут потеряться какие то изменения, зато pull заработает:)

  • git reset —hard origin/master

nginx + passenger + service + autorun

gem install passenger -v —no-rdoc —no-ri
#gem update —system ***
if no swap
dd if=/dev/zero of=/swap bs=1M count=1024
mkswap /swap
swapon /swap
df -h
passenger-install-nginx-module
/opt/nginx/sbin/nginx -s stop
vim /etc/init.d/nginx

#!/bin/sh
#
# nginx — this script starts and stops the nginx daemin
#
# chkconfig: — 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /opt/nginx/conf/nginx.conf
# pidfile: /opt/nginx/logs/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx=»/opt/nginx/sbin/nginx»
prog=$(basename $nginx)

NGINX_CONF_FILE=»/opt/nginx/conf/nginx.conf»

lockfile=/var/lock/subsys/nginx

start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $»Starting $prog: »
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}

stop() {
echo -n $»Stopping $prog: »
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}

restart() {
configtest || return $?
stop
start
}

reload() {
configtest || return $?
echo -n $»Reloading $prog: »
killproc $nginx -HUP
RETVAL=$?
echo
}

force_reload() {
restart
}

configtest() {
$nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
status $prog
}

rh_status_q() {
rh_status >/dev/null 2>&1
}

case «$1″ in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $»Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}»
exit 2
esac

chmod +x /etc/init.d/nginx
service nginx start
service nginx stop
service nginx reload
service nginx restart
service nginx status
service nginx configtest

#cool autorun1
/sbin/chkconfig nginx on

#or autorun2
vim /etc/rc.local

/opt/nginx/sbin/nginx

 

TAR BZ2

tar xvfz *.tar.gz
tar xvjf *.tar.bz2


x — позволяет вам извлекать файлы из архива.
v — делает вывод tar подробным. Это означает, что на экран будут выведены все найденные в архиве файлы. Если эта опция опущена, информация, выводимая в процессе обработки, будет ограничена.
f — является обязательной опцией. Без неё tar пытается использовать магнитную ленту вместо файла архива.
z — позволяет вам обрабатывать архив, сжатый gzip’ом (с расширением .gz). Если вы забудете указать эту опцию, tar выдаст ошибку. И наоборот, эта опция не должна использоваться для несжатых архивов.