Админства пост

Большой пост-шпаргалка для меня по девелоперскому админству. Почему девелоперскому – просто я не админ, и обычно того, что будет описываться здесь будет достаточно чтобы сесть и начать писать на php что-то, но вряд ли будет правильным использовать это на рабочих серверах без консультации с админом. Ну и конечно дисклаймер – пользоваться под собственную ответственность – если все упало – я не виноват ))))

Ну и да – есть всякие системы управления конфигурацией типа Ansible или можно все написать в Vagrantfile, тем не менее иногда надо что-то подшаманить.
Все это есть в сети, если что-то часто используется – можно и запомнить, но так как мне это требуется не часто, то в памяти не лежит, а каждый раз искать надоедает.

В общем — моя шпаргалка.

(Будет обновляться, когда мне не будет лень)

Ubuntu

Настройка пользователя

Создание нового пользователя

и задание ему хоум-директории

# form root user
adduser username; 
passwd username; #setting password for username
mkdir /home/username; #default home for username
chown username /home/username

Установка пользователю bash как шела по дефолту

chsh -s /bin/bash username

Добавляем пользователя в судоеры
Чтобы в можно было без переключения пользователя доустановить что-то.

usermod -a -G sudo username

Тепрь можно перелогиниться на созданного пользователя

Очень удобно дополнение по табу в командной строке. Для работоспособности этого должен быть установлен bash-completion.
Иногда он установлен сразу, на некоторых хостингах — нет.

apt-get install bash-completion

Добавляем русские локали

Посмотреть список доступных локалей

locale -a

Добавляем русскую utf-8

sudo locale-gen ru_RU.UTF-8;
sudo dpkg-reconfigure locales

СУБД всякие

MySQL

Postgresql

Создание роли

Создание пользователя/роли с разрешением на вход, разрешением на создание базы, и сразу же задается пароль без ограничения срока (не задается, например, VALID UNTIL ‘2017-01-01’)

CREATE ROLE rolename WITH LOGIN CREATEDB PASSWORD 'put_password_here';
Создание бд

Простой способ (например, тут нет tablespace) – просто бд и роль владельца, чтобы не только postgres имел доступ к бд

CREATE DATABASE database_name OWNER role_name;

Если бд была создана, но забыли добавить пользователя-владельца

ALTER DATABASE dbname OWNER TO username;
Локальный логин в постгрес из консоли
# логин от пользователя postgres
sudo -u postgres psql
# логин от пользователя с указанием конкретной db
psql -U username -d databasename -W

используемые параметры

  • -h hostname — имя хоста сервера бд
  • -p portnumber — номер порта (5432 – дефолтный)
  • -U username — имя пльзователя
  • -W &mdash будет спрашиваться пароль
  • -d databasename — имя бд

Если имя пользователя на локалке отличается от имени пользователя в постгресе, то может возникнуть ошибка

FATAL: Peer authentication failed for user "username"

Для решения правим pg_hba.conf (/etc/postgresql/9.5/main/pg_hba.conf)
В строке метод для пользователей:

local  all   postgres         peer

заменяем на md5

local  all   postgres         md5

Если очень кратко, то при методе peer работает с пользователями ОС, а если стоит md5, то пользователь берется, например из консоли. А так – в документации больше всего написано.

russian locale may be not installed
we can see all installed locales
locale -a

WHAT IS THAT
ls -la ~/ | more

for color ls output
view or create .bashrc in home directory
add this line
alias ls=’ls –color=auto’

source .bashrc or relogin

if after relogin .bashrc not load
see if .profile in home directory
edit or create

add this code
if [ -n “$BASH_VERSION” ]; then
# include .bashrc if it exists
if [ -f “$HOME/.bashrc” ]; then
. “$HOME/.bashrc”
fi
fi

for test this relogin and ls, for example /etc

ok, let install apache mysql and php
sudo apt-get install apache2

ifconfig – eth0 show public ip

sudo apt-get install mysql-server
fill password for root user

run script for some secure changes
sudo mysql_secure_installation

add user access to /var/www

sudo adduser www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www

install php
sudo apt-get install php5 php5-mcrypt libapache2-mod-php5

go to /etc/apache2/mods-enabled
vim dir.conf

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

move index.php directly after DirectoryIndex – for some speedup webserver

sudo service apache2 restart

sudo apt-get install curl
(and may be wget)

and some useful php modules
sudo apt-get install php5-cgi
sudo apt-get install php5-cli
sudo apt-get install php5-curl
sudo apt-get install php5-dev php5-dbg

install composer
sudo apt-get update
sudo apt-get install curl php5-cli git
curl -sS https://getcomposer.org/installer | sudo php — –install-dir=/usr/local/bin –filename=composer

for yii must add composer plugin
global require “fxp/composer-asset-plugin:~1.1.1”

install xdebug

xdebug.default_enable = On
xdebug.var_display_max_depth=6
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey=netbeans-xdebug
xdebug.remote_autostart=1
xdebug.remote_log=/tmp/xdebug.log
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
xdebug.profiler_output_dir=/tmp/profiler
xdebug.show_local_vars=1
xdebug.overload_var_dump=1

nginx

sudo apt-get install php5-fpm

sudo gedit /etc/php5/fpm/php.ini

Открываем и редактируем файл /etc/nginx/sites-available/default:

?
1
sudo gedit /etc/nginx/sites-available/default

Для начала поменяем параметры root и index в секции server:

?
1
2
3
server{

root: /var/www;
?
1
2
3
index: index.php

}

Если вы уже пользуетесь веб-сервером apache, то для правильной работы nginx нужно будет поменять номер порта с 80 на 8000:

?
1
2
3
4
server{
listen: 8000;

}

Убираем комментарии со следующих строк:

?
1
2
3
4
5
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}

postgresql

Leave a Reply

Your email address will not be published. Required fields are marked *