Archives

Changing the upload_max_filesize in php.ini

There are a few common errors that occur in WordPress and other PHP-based programs that use the php.ini for certain settings. One of the most common of these settings is the maximum upload filesize (“upload_max_filesize“). This is a setting commonly found within a file known as the php.ini file.  Here’s an example screenshot of a program with max file size limits exceeded during an upload attempt:

Error text: file_name” has failed to upload due to an error – This file exceeds the maximum upload size for this site.

You will need to increase the allowed memory in your php.ini file. The instructions below will show you on how to fix the php memory error by adjusting the appropriate sections of your local php.ini file.

Fixing the “Maximum upload size exceeded” Error

    1. Login to your cPanel.
    2. Scroll down to the FILES section of your Cpanel, and then click on the icon labeled FILE MANAGER.
    3. Use the File Manager to navigate to the web root. For more information on understanding your web root or document root, see What folder are my website files located within?
    4. Locate the php.ini file in your public_html folder. If you do not have one, our Technical Support team can place a default one in your account, or you can create a blank file by clicking on the New File icon and naming it php.ini so you can edit and add your own settings. Once you have a php.ini file, click on the file name to highlight it in the right side of the File Manager. If you need further information on editing with the File Manager editors, go to Using the File Manager Code Editor.
    5. Search the php.ini file for the following text:

      ;;;;;;;;;;;;;;;;
      ; File Uploads ;
      ; ;;;;;;;;;;;;;;

      ; Whether to allow HTTP file uploads.
      file_uploads = On

      ; Temporary directory for HTTP uploaded files (will use system default if not
      ; specified).
      ;upload_tmp_dir =

      ; Maximum allowed size for uploaded files.
      upload_max_filesize = 128M

    6. The

file_uploads

    1. should be set to “on” and “

Maximum allowed size for uploaded files

    ” should be set to the file size that you need.

  1. Click the Save Changes button to save your changes.

This change affects all files within the directory that a php.ini is saved, unless the file is set to be recursive.  If it is set to be recursive, then it affects all directories as per the setting in the .HTACCESS file.  For more information, see How can I make my php.ini file recursive?

How to install a PEAR module

Note:

Most business-class hosting servers now come equipped with a PEAR installer via cPanel to allow you to install custom PEAR modules. If you are on a business-class hosting plan (Launch, Power, or Pro) and are on a server that does NOT have this feature enabled, please contact support@inmotionhosting.com to request to be moved to a newer server.  VPS and dedicated server customers can ask to have this feature enabled at no extra charge.

Custom Installations:

User Submitted: Jim Frenette Web Developer, http://www.brijo.com

This is an article submitted by one of our customers that explains how to set up your own installation of PEAR for php, which in turn will allow you to install your own PEAR modules.

Please note: InMotion Hosting can only provide LIMITED support for third-party softwares, customer installations, etc. We are limited to providing server-side variables only.

First, create a directory outside your public_html called “pear.” This folder should be world-readable and writable, which will require permissions of 777. Then, create another folder in your public_html. You can choose the name of this folder, but you may want to password-protect it to restrict access to its files. For purposes of this demonstration, the folder we are creating is called “pear-inst

How to Password-Protect a Directory

Go to http://pear.php.net/go-pear and copy the contents of that page into a Notepad file called ”

http://example.com/pear-inst/go-pear.php This is the main installation file. From here, the only field you should need to edit is the installation prefix, which will be the absolute path to the ‘

/home/userna5/pear

userna5‘ is your InMotion username. You will also want to set the php CLI path in question 11. The path to the php binary is /usr/bin/php. Once the installation is complete, you now have your own instance of Pear installed on your site. You will need to make sure to set the include path in your php scripts to reflect that of your installation, and not the one on the server:

set_include_path(‘../../pear/PEAR’ . PATH_SEPARATOR . get_include_path());

From here you can also install your own pear packages. To do this, you can create a file called “install.php” in your pear-inst directory and add this code:

include_once “../../pear/index.php”;

When you load this page in a browser (http://example.com/pear-inst/install.php) you will see the standard PEAR installation interface, where you can install your own PEAR modules. For security purposes, you will want to set the permissions of the pear directory to 755 when you are done installing PEAR and other modules.

How to enable html files to display php code

When creating your own site, you have many options. The basic files, particularly on Linux servers like the ones used for our hosting accounts, are either generally either html (files ending in the extension .html or .htm) or php (files ending in the extension .php) files. HTML is the markup language for displaying content and is not processed on the server side. Php is a programming style language used to create pages that are processed and served from the server. Php files can always read and display HTML code, but HTML does not automatically parse php code. To do so, you will need to make adjustments to your .htaccess file. Once that is done, the php code will display within HTML files without issue. Follow the instructions below as they guide you on enabling html files to display php code via your .htaccess file.

Enabling HTML files to display php code

  1. Log into your cPanel dashboard.
  2. Use the File Manager to navigate to the root folder for the domain you are working with, ensuring you set the Show Hidden Files option.
  3. Once in the root folder for the domain, check for the .htaccess file. If one is not there, you will need to create a new one. Once located, edit the file by highlighting the file and click on the Edit icon from the toolbar at the top of the page.
  4. This brings you to the cpanel file editor. You will want to insert the following line of code at the top of the .htaccess file.
    AddType text/html .shtml .shtm .htm .html
    AddHandler server-parsed .shtml .shtm .htm .html 
    Options Indexes FollowSymLinks Includes
    # Uncomment the version of PHP you have on your server
    # Only one of the following  can be uncommented
    AddHandler application/x-httpd-php5 .shtml
    #AddHandler application/x-httpd-php52 .shtml
    #AddHandler application/x-httpd-php54 .shtml
    #AddHandler application/x-httpd-php4 .shtml

    Important! You will need to check your php version so you know which line to comment in the previous code.

  5. Click the Save Changes button in the upper right corner of the screen. Your html file should now display the php code within it. Below is a before and after shot of the effects of the .htaccess edit.
    Before After

Language code list for PHP programs

Websites that are geared for multi-language support have special codes you can use to display your admin sections in the language of your preference. An example of where this is used is the interface language of programs like MediaWiki, DokuWiki, or TikiWiki. You need to use a special code in the configuration file for the software to change your administration language. There are many different codes available that correlate to each different language. The table below is not completely exhaustive; however, most of the available languages and their correlating codes are below.

Common program language code list

List of available codes for languages
aa
Afar
ab
Abkhaz
ace
Aceh
af
Afrikaans
ak
Akan
aln
Gheg Albanian
als
Alemannic
am
Amharic
an
Aragonese
ang
Old English
anp
Angika
ar
Arabic
arc
Aramaic
arn
Mapuche,
Mapudungu,
Araucanian
ary
Moroccan Spoken Arabic
arz
Egyptian Spoken Arabic
as
Assamese
ast
Asturian
av
Avar
avk
Kotava
ay
Aymara
az
Azerbaijani
azb
South Azerbaijani
ba
Bashkir
bar
Bavarian,
Austro-Bavarian,
South Tyrolean
bat-smg
Samogitian
bcc
Southern Balochi
bcl
Bikol: Central Bicolano language
be
Belarusian normative
be-tarask
Belarusian in Taraskievica orthography
be-x-old
Belarusian in Taraskievica orthography
bg
Bulgarian
bh
Bihari macro language
bho
Bhojpuri
bi
Bislama
bjn
Banjarese
bm
Bambara
bn
Bengali
bo
Tibetan
bpy
Bishnupriya Manipuri
bqi
Bakthiari
br
Breton
brh
Brahui
bs
Bosnian
bug
Buginese
bxr
Buryat (Russia)
ca
Catalan
cbk-zam
Zamboanga Chavacano
cdo
Min Dong
ce
Chechen
ceb
Cebuano
ch
Chamorro
cho
Choctaw
chr
Cherokee
chy
Cheyenne
ckb
Sorani.
co
Corsican
cps
Capiznon áá£, Cree
crh
Crimean Tatar
crh-latn
Crimean Tatar Latin
crh-cyrl
Crimean Tatar,
Cyrillic
cs
Czech
csb
Cassubian
cv
Chuvash
cy
Welsh
da
Danish
de
German (“Du”)
de-at
Austrian German
de-ch
Swiss Standard German
de-formal
German – formal address
diq
Zazaki
dsb
Lower Sorbian
dtp
Central Dusun
dv
Dhivehi
dz
Dzongkha, Bhutan
ee
Estonian
egl
Emilian
el
Greek
eml
rumagnal, Emiliano-Romagnolo / Sammarinese
en
English
en-ca
Canadian English
en-gb
British English
eo
Esperanto
es
Spanish
et
Estonian
eu
Basque
ext
Extremaduran
fa
Persian
ff
Fulfulde, Maasina
fi
Finnish
fit
Tornedalen Finnish
fiu-vro
Võro
fj
Vakaviti, Fijian
fo
Faroese
fr
French
frc
Cajun French
frp
Franco-Proven
frr
North Frisian
fur
Friulian
fy
Frisian
ga
Irish
gag
Gagauz
gan
Gan
gan-hans
Gan
gan-hant
Gan (Traditional Han)
gd
Scots Gaelic
gl
Galician
glk
Gilaki
gn
Guarana,
Paraguayan
got
Gothic
grc
Ancient Greek
gsw
Alemannic
gu
Gujarati
gv
Manx
ha
Hausa
hak
Hakka
haw
Hawaiian
he
Hebrew
hi
Hindi
hif
Fijian Hindi
hif-latn
Fiji Hindi,
latin
hil
Hiligaynon
ho
Hiri Motu
hr
Croatian
hsb
Upper Sorbian
ht
Haitian Creole French
hu
Hungarian
hy
Armenian
hz
Herero
ia
Interlingua (IALA)
id
Indonesian
ie
Interlingue (Occidental)
ig
Igbo
ii
Sichuan Yi
ik
Inupiak Inupiatun, Northwest Alaska
ike-cans
Inuktitut, Eskimo
ike-latn
Inuktitut, Eastern Canadian Latin
ilo
Ilokano
inh
Ingush
io
Ido
is
Icelandic
it
Italian
iu
Inuktitut (macro language – do
ja
Japanese
jam
Jamaican,
Creole,
English
jbo
Lojban
jut
Jutish / Jutlandic
jv
Javanese
ka
Georgian
kaa
Karakalpak
kab
Kabyle
kbd
Kabardian
kbd-cyrl
Kabardian Cyrillic
kg
Kongo
khw
Khowar
ki
Gikuyu
kiu
Kirmanjki
kj
Kwanyama
kk
Kazakh
kk-arab
Kazakh Arabic
kk-cyrl
Kazakh Cyrillic
kk-latn
Kazakh Latin
kk-cn
Kazakh China
kk-kz
Kazakh, Kazakhsta
kk-tr
Kazakh Turkey
kl
Inuktitut, Greenlandi,
Greenlandic,
Kalaallisut
km
Khmer, Central
kn
Kannada
ko
Korean
ko-kp
Korean (DPRK)
koi
Komi-Permyak
kr
Kanuri, Central
krc
Karachay-Balkar
kri
Krio
krj
Kinaray-a
ks
Kashmiri
ks-arab
Kashmiri
ks-deva
Kashmiri Devanagari
ksh
Ripuarian
ku
Kurdish
ku-latn
Northern Kurdish
ku-arab
Northern Kurdish
kv
Komi-Zyrian
kw
Cornish
ky
Kirghiz
la
Latin
lad
Ladino
lb
Luxemburguish
lbe
Lak
lez
Lezgi
lfn
Nova, Lingua Franca Nova
lg
Ganda
li
Limburgian
lij
Ligurian
liv
Livonian
lmo
Lombard
ln
Lingala
lo
Laotian
loz
Lozi
lt
Lithuanian
ltg
Latgalian
lus
Mizo/Lushai
lv
Latvian
lzh
Literary Chinese
lzz
Laz
mai
Maithili
map-bms
Banyumasan
mdf
Moksha
mg
Malagasy
mh
Marshallese
mhr
Eastern Mari
mi
Maori
min
Minangkabau
mk
Macedonian
ml
Malayalam
mn
Halh Mongolian
mo
Moldovan
mr
Marathi
mrj
Hill Mari
ms
Malay
mt
Maltese
mus
Muskogee/Creek
mwl
Mirandese
my
Burmese
myv
Erzya
mzn
Mazanderani
na
Nauruan
nah
Nahuatl
nan
Min-nan
nap
Neapolitan
nb
Norwegian,
Bokmal
nds
Low German or Low Saxon
nds-nl
aka Nedersaksisch: Dutch Low Saxon
ne
Nepali
new
Newar / Nepal Bhasha
ng
Ndonga
niu
Niuean
nl
Dutch
nl-informal
Dutch informal
nn
Norwegian Nynorsk
no
Norwegian
nov
Novial
nrm
Norman
nso
Leboa, Northern Sotho
nv
Navajo
ny
Chichewa
oc
Occitan
om
Oromo
or
Oriya
os
Ossetic
pa
Eastern Punjabi
pag
Pangasinan
pam
Pampanga
pap
Papiamentu
pcd
Picard
pdc
Pennsylvania German
pdt
Plautdietsch/Mennonite Low German
pfl
Palatinate German
pi
Pali
pih
Pitkern, Norfuk
pl
Polish
pms
Piedmontese
pnb
Western Punjabi
pnt
Pontic/Pontic Greek
prg
Prussian
ps
Pashto,
pt
Portuguese
pt-br
Brasil, Brazilian Portuguese
qu
Southern Quechua
qug
Kichwa/Northern Quechua
rgn
Romagnol
rif
Tarifit
rm
Raeto-Romance
rmy
Vlax Romany
rn
Rundi/Kirundi/Urundi
ro
Romanian
roa-rup
Aromanian
roa-tara
Tarantino
ru
Russian
rue
Rusyn
rup
Aromanian
ruq
Megleno-Romanian
ruq-cyrl
Megleno-Romanian Cyrillic
ruq-latn
Megleno-Romanian
ruq-latn
Megleno-Romanian
rw
Kinyarwanda
sa
Sanskrit
sah
Sakha
sat
Santali
sc
Sardinian
scn
Sicilian
sco
Scots
sd
Sindhi
sdc
Sassarese
se
Northern Sami
sei
Seri
sg
Sango/Sangho
sgs
Samogitian
sh
Serbocroatian
shi
Tachelhit
shi-tfng
Tachelhit
shi-latn
Tachelhit
si
Sinhalese
simple
Simple English
sk
Slovak
sl
Slovenian
sli
Lower Selisian
sm
Samoan
sma
Southern Sami
sn
Shona
so
Somali
sq
Albanian
sr
srpski, Serbian
sr-ec
Serbian Cyrillic ekavian
sr-el
Serbian Latin ekavian
srn
Sranan Tongo
ss
Swati
st
Southern Sotho
stq
Saterland Frisian
su
Sundanese
sv
Swedish
sw
Swahili
szl
Silesian
ta
Tamil
tcy
Tulu
te
Telugu
tet
Tetun
tg
Tajiki
tg-cyrl
Tajiki Cyrllic
tg-latn
Tajiki Latin
th
Thai
ti
Tigrinya
tk
Turkmen
tl
Tagalog
tly
Talysh
tn
Setswana
to
Tonga
tokipona
Toki Pona
tpi
Tok Pisin
tr
Turkish
tru
Turoyo
ts
Tsonga
tt
Tatar
tt-cyrl
Tatar Cyrillic
tt-latn
Tatar
tum
Tumbuka
tw
Twi
ty
Tahitian
tyv
Tyvan
udm
Udmurt
ug
Uyghurche,
Uyghur
ug-arab
Uyghur Arabic
ug-latn
Uyghur Latin
uk
Ukrainian
ur
Urdu
uz
Uzbek
ve
Venda
vec
Venetian
vep
Veps
vi
Vietnamese
vls
West Flemish
vmf
Upper Franconian,
vo
Volapak
vot
Vod/Votian
vro
Võro
wa
Walloon
war
Waray-Waray
wo
Wolof
wuu
Wu Chinese
xal
Kalmyk-Oirat
xh
Xhosan
xmf
Mingrelian
yi
Yiddish
yo
Yoruba
yue
Cantonese
za
Zhuang
zea
Zeeng Chinese
zh-classical
Classical Chinese/Literary Chinese
zh-cn
Chinese (PRC)
zh-hans
Mandarin Chinese
zh-hant
Mandarin Chinese (Traditional Chinese script)
zh-hk
Chinese (Hong Kong)
zh-min-nan
Min-nan
zh-mo
Chinese Macau
zh-my
Chinese,
Malaysia
zh-sg
Chinese,
Singapore
zh-tw
Chinese,
Taiwan
zh-yue
Cantonese
zu
Zulu

Exim PCI scan false positive

In this article we’ll discuss why a PCI scan could have possibly failed as a false positive, stating an outdated version of Exim which is the service that handles sending e-mail on the server. If you have read our previous article on how to pass PCI compliance scans, the Exim service being outdated is a common false positive that we see.

The reason for this is because we run cPanel on our servers, and cPanel utilizes backporting for their software updates instead of simply installing the latest version of the service each time it’s updated. So to a PCI vendor it might seem that the version is outdated and subject to a known exploit, but in reality the service is secure because it has been patched against the exploit already.

If you failed a PCI scan and the reason stated was your server was running an old version of Exim that is exploitable, you can follow these steps to report the issue as a false positive back to your PCI vendor.

  1. Login to your server via SSH
  2. Run the following command:rpm -q exim && rpm -q –changelog exim | head -10You should get back text similar to:

    exim-4.80-3.x86_64
    * Thu Oct 25 2012 brian m. carlson <brian.carlson@cpanel.net> – 4.80-3
    – Fixes CVE-2012-5671
    – Rebuild to revert ALTPORT logic to original state.

    * Thu Oct 25 2012 brian m. carlson <brian.carlson@cpanel.net> – 4.80-2
    – Fixes CVE-2012-5671

    * Tue Sep 11 2012 Rikus Goodell <rikus.goodell@cpanel.net> – 4.80-1
    – Remove ALTPORT logic from init script (now reverted).</rikus.goodell@cpanel.net></brian.carlson@cpanel.net></brian.carlson@cpanel.net>

    You should notice the latest patch applied to Exim was on Thu Oct 25 2012. So if your PCI scanning vendor has failed your website due to the Exim version, provide them with this information so they can mark it as a false positive.

    In this example we used head -10 to only show 10 lines from the full changelog, you can adjust that number to see updates going further back in time.

You should now understand how to retrieve the changelog of the Exim service on your server, to show a PCI vendor that it should be reported as a false positive.

BIND PCI scan false positive

In this article we’ll discuss why a PCI scan could have possibly failed as a false positive, stating an outdated version of BIND (Berkeley Internet Name Domain) which is the service that handles DNS requests. If you have read our previous article on how to pass PCI compliance scans, the BIND service being outdated is a common false positive that we see.

The reason for this is because we run cPanel on our servers, and cPanel utilizes backporting for their software updates instead of simply installing the latest version of the service each time it’s updated. So to a PCI vendor it might seem that the version is outdated and subject to a known exploit, but in reality the service is secure because it has been patched against the exploit already.

If you failed a PCI scan and the reason stated was your server was running an old version of BIND that is exploitable, you can follow these steps to report the issue as a false positive back to your PCI vendor.

  1. Login to your server via SSH
  2. Run the following command:rpm -q bind && rpm -q –changelog bind | head -10You should get back text similar to:

    bind-9.8.2-0.10.rc1.el6_3.5.x86_64
    * Wed Oct 10 2012 Adam Tkac <atkac redhat com> 32:9.8.2-0.10.rc1.5
    – fix CVE-2012-5166

    * Tue Sep 18 2012 Adam Tkac <atkac redhat com> 32:9.8.2-0.10.rc1.4
    – allow forward{,ers} statement in static-stub zones

    * Thu Sep 13 2012 Adam Tkac <atkac redhat com> 32:9.8.2-0.10.rc1.3
    – fix CVE-2012-4244

    * Wed Jul 25 2012 Adam Tkac <atkac redhat com> 32:9.8.2-0.10.rc1.2

    You should notice the latest patch applied to BIND was on Wed Oct 10 2012. So if your PCI scanning vendor has failed your website due to the BIND version, provide them with this information so they can mark it as a false positive.

    In this example we used head -10 to only show 10 lines from the full changelog, you can adjust that number to see updates going further back in time.

You should now understand how to retrieve the changelog of the BIND service on your server, to show a PCI vendor that it should be reported as a false positive.

OpenSSL PCI scan false positive

In this article we’ll discuss why a PCI scan could have possibly failed as a false positive, stating an outdated version of OpenSSL which is the service that handles SSL connections. If you have read our previous article on how to pass PCI compliance scans, the OpenSSL service being outdated is a common false positive that we see.

The reason for this is because we run cPanel on our servers, and cPanel utilizes backporting for their software updates instead of simply installing the latest version of the service each time it’s updated. So to a PCI vendor it might seem that the version is outdated and subject to a known exploit, but in reality the service is secure because it has been patched against the exploit already.

If you failed a PCI scan and the reason stated was your server was running an old version of OpenSSL that is exploitable, you can follow these steps to report the issue as a false positive back to your PCI vendor.

  1. Login to your server via SSH
  2. Run the following command:rpm -q openssl && rpm -q –changelog openssl | head -10You should get back text similar to:

    openssl-1.0.0-25.el6_3.1.x86_64
    * Wed Aug 15 2012 Tomas Mraz <tmraz@redhat.com> 1.0.0-25.1
    – use PKCS#8 when writing private keys in FIPS mode as the old
    PEM encryption mode is not FIPS compatible (#812348)

    * Tue May 15 2012 Tomas Mraz <tmraz@redhat.com> 1.0.0-25
    – fix for CVE-2012-2333 – improper checking for record length in DTLS (#820686)
    – properly initialize tkeylen in the CVE-2012-0884 fix

    * Thu Apr 19 2012 Tomas Mraz <tmraz@redhat.com> 1.0.0-24
    – fix for CVE-2012-2110 – memory corruption in asn1_d2i_read_bio() (#814185)

    You should notice the latest patch applied to OpenSSL was on Wed Aug 15 2012. So if your PCI scanning vendor has failed your website due to the OpenSSL version, provide them with this information so they can mark it as a false positive.

    In this example we used head -10 to only show 10 lines from the full changelog, you can adjust that number to see updates going further back in time.

You should now understand how to retrieve the changelog of the OpenSSL service on your server, to show a PCI vendor that it should be reported as a false positive

How to Point a Subdomain to GitHub Pages

You may recall, in a previous article, we explained how you can point a domain to GitHub to host a static site. In this article, we’re going to show you how you can do the same thing but for a subdomain.

There are many reasons why you might want to use a subdomain. You may want to use a subdomain for testing, or, you may already have a site on your primary domain and would like to point a subdomain to GitHub pages.

Whatever the reason, using a subdomain as a custom domain for GitHub Pages is easy to set up. Follow along with the steps below to see how you can do it.

How to Point the Subdomain to GitHub

In order to accomplish these steps you will only need access to cPanel. You also want to note the GitHub’s IP addresses you can use:

* 192.30.252.153 
* 192.30.252.154
  1. Log into cPanel
  2. Create a subdomain (or us an existing one)
  3. Open the Zone Editor in cPanel
  4. Change your subdomain CNAME to an A Record
  5. Point the A record to the primary GitHub IP address: 192.30.252.153
  6. Add another A record for the same subdomain and point it to the secondary GitHub IP address: 192.30.252.154

Allow Some Time for Propagation

Now that you have pointed your subdomain to GitHub, you may need to wait a few hours for the records to propagate. If the site is not resolving after 24 hours you may want to double-check your input to make sure there are no mistakes in copying.

 

How to Create a New Account with GitHub

As we mentioned in our Introduction to Git, there are many popular Git hosting solutions available, some proprietary and some free. One of the most popular free Git hosts is GitHub. In this article, we will show you how to create a new account with GitHub, which you can use to host your remote repositories and even host simple websites for your projects.

How to Create a New Account with Github

This articles assumes that you do not have a Github account yet, and you are ready to create one.

  1. Proceed to Github.com
  2. Click the Sign Up link at the top right
  3. Fill in your desired Username, Email Address, and Password
  4. Click Create an account
  5. To proceed with a free personal account, click Continue
  6. Optional: fill out the survey or click skip this step

 

Well done. You have successfully created your personal Github account. Now you can begin creating projects and distributing your work. From here, Github will provide links to read documentation or to jump into starting a new project.

How to Host a Static Site with GitHub Pages

In this article we’ll show you how you can easily host a basic website on your GitHub account using GitHub Pages. This can be valuable if you require an offsite resource to redirect visitors to in case of emergency hosting situations. For example, if you are undergoing maintenance or switching servers, you will be able to offload resources temporarily.

Setting up a Site with GitHub Pages

GitHub pages supports static HTML files. This means you can host an uncomplicated site there. There are no databases, so you can’t install something like a WordPress site. You will also have no options for SSL if you choose to use a custom domain. But, for a very basic project or emergency page, this is an easy way to set up a site quickly.

  1. Log into your GitHub Account
  2. Select New repository at the top right
  3. Name the repository
  4. Click Create Repository
  5. Visit your repository and choose Settings
  6. Select Choose a theme under the GitHub Pages section
  7. Select your theme
  8. Add content to the page or edit the existing content in the form window
  9. Click the green Commit Changes button to add changes to the master branch
  10. Visitor your new site at https://username.github.io/name-of-repository/ (a link will be provided to you)

Next Steps

Now that you have created a single page hosted at GitHub.com, we will show you how to use a custom domain.